私はこのようなクラスシーンを持っています:
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));
}
ブーストは引数の数について不平を言っているので、構文が間違っている必要があります..これを行う正しい方法は何ですか?
編集:No instance of overloaded boost::bind matches the argument list
EDIT2: C++11 ではありません
ありがとう