我有一个这样的课堂场景:
class Renderer;
class Scene
{
public:
Scene(const std::string& sceneName);
~Scene();
void Render(Renderer& renderer);
Camera& GetSceneCamera() const;
SceneNode& GetRootNode() const;
const std::string& GetSceneName() const;
private:
const std::string mName;
Camera mSceneCamera;
SceneNode mRootNode;
};
然后我有一个场景向量 ( vector<Scene>
)。
现在给定一个字符串,我想遍历这个场景向量,如果在场景中找到名称,则返回一个指向它的指针。这是一个天真的尝试,但我遇到了编译错误:
Scene* SceneManager::FindScene(const std::string& sceneName)
{
return std::find_if(mScenes.begin(), mScenes.end(), boost::bind(&std::string::compare, &sceneName, _1));
}
Boost 抱怨参数的数量,所以我的语法一定是错误的.. 这样做的正确方法是什么?
编辑:No instance of overloaded boost::bind matches the argument list
EDIT2:不是 C++11
谢谢