看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《legnaleurc (CA)》之銘言: : class Factory { : public: : typedef std::function< Base *() > Creator; : static Base * Create( int id ); : static bool Register( int id, Creator c ); : private: : static std::map< int, Creator > f_; : }; : Base * Factory::Create( int id ) { : std::map< int, Creator >::const_iterator it = f_.find( id ); : if( it == f_.end() ) { : return NULL; : } : return it->second(); : } : bool Register( int id, Creator c ) { : if( f_.find( id ) != f_.end() ) { : return false; : } : f_.insert( std::make_pair( id, c ) ); : return true; : } : // register : Factory::Register( 1, []() { : return new D1; : } ); 感謝L大的幫忙 但原諒小弟基礎不好 想請問一下 為什麼Factory::Register中的第二個參數可以這樣寫呢? Factory::Register( 1, []() { return new D1; } ) ^^尤其是這裡 看不懂 以下恕刪~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.159.34
hilorrk:lambda? 06/18 19:39
loveme00835:這樣好像有點問題... 06/18 19:55
angleevil:~"~我其實也想問那樣寫怪怪的,而且依開始回傳值不是bool 06/18 22:26
angleevil:? 06/18 22:26