Re: [問題] template一問
※ 引述《NIKE74731 (做遊戲的心)》之銘言:
: ※ 引述《legnaleurc (CA)》之銘言:
: : 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; } )
: ^^尤其是這裡 看不懂
: 以下恕刪~
那是 C++0x 的 lambda expression
同義於
Base * tmp() {
return new D1;
}
Factory::Register( 1, tmp );
我註冊一個 id 為 1 的函式給 factory
之後只要傳入 1 就可以找到這個之前註冊好的函式去生成 D1
如果主要是用 VC10 就別管 lambda expression 了
Bug 太多, 而且大概到 SP1 也不會修正
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 175.96.118.199
推
06/19 23:57, , 1F
06/19 23:57, 1F
推
06/20 00:56, , 2F
06/20 00:56, 2F
→
06/20 00:58, , 3F
06/20 00:58, 3F
→
06/20 01:02, , 4F
06/20 01:02, 4F
→
06/20 01:03, , 5F
06/20 01:03, 5F
→
06/20 01:06, , 6F
06/20 01:06, 6F
→
06/20 01:07, , 7F
06/20 01:07, 7F
→
06/20 01:08, , 8F
06/20 01:08, 8F
→
06/20 01:12, , 9F
06/20 01:12, 9F
→
06/20 09:05, , 10F
06/20 09:05, 10F
推
06/20 10:16, , 11F
06/20 10:16, 11F
→
06/20 10:22, , 12F
06/20 10:22, 12F
→
06/20 10:23, , 13F
06/20 10:23, 13F
→
06/20 21:17, , 14F
06/20 21:17, 14F
→
06/20 23:34, , 15F
06/20 23:34, 15F
→
06/20 23:35, , 16F
06/20 23:35, 16F
討論串 (同標題文章)