我正在使用VS2010.在我的不可兼容的Scene类的构造函数中,我有:
auto& character_mgr = CharacterManager::Instance();
character_mgr.initialize();
character_mgr.add_observer( std::bind( &Scene::on_character_event, *this, std::placeholders::_1, std::placeholders::_2 ) );
Run Code Online (Sandbox Code Playgroud)
这里add_observer定义为:
void add_observer( Observer observer ){ ... }
Run Code Online (Sandbox Code Playgroud)
使用Observer定义为:
typedef std::function< void ( CharacterEvent, const Character& ) > Observer;
Run Code Online (Sandbox Code Playgroud)
问题是编译器告诉我有一个尝试复制我的场景,我在绑定中使用*this
,认为它将保留对它的引用,而不是在我复制绑定生成的仿函数时复制它.
归档时间: |
|
查看次数: |
2064 次 |
最近记录: |