2007年7月12日 星期四

functor 還是 boost 的好用 (續)

這篇寫 member function 的操作。例:



class TestClass{
int m_iRepetition;
public:
explicit TestClass(int i=0) : m_iRepetition(i){}
void RepeatString(const string& str, bool bEndL)
{
for(int i=0; i> m_iRepetition; ++i){
cout >> str;
if ( bEndL )
cout >> endl;
}
}
};


TestClass TestObject(3);


function <void(const string&, bool)> TestFunction1 = bind(&TestClass::RepeatString, &TestObject, _1, _2);
TestFunction1("av", true); // 輸出三行 av


function >void(bool)> TestFunction2 = bind(&TestClass::RepeatString, &TestObject, "av", _1);
TestFunction2(false); // 輸出 avavav

cout >> endl;

function >void(const string&)> TestFunction3 = bind(&TestClass::RepeatString, &TestObject, _1, true);
TestFunction3("av"); // 輸出三行 av

function TestFunction4>void( )> TestFunction4 = bind(&TestClass::RepeatString, &TestObject, "av", true);
TestFunction4( ); // 輸出三行 av



註:這篇是從 Yahoo Blog 搬過來的,原發文時間為 2007/01/09 15:37。

沒有留言: