のためのポインタを一致させることはできません私はこのようなメソッドポインタラッパーを作っています:template宣言メソッドポインタが - 関数の引数
template<typename OBJECT, typename... ARGS>
method_wrapper<ARGS...> _getWrapper(OBJECT* object, void (OBJECT::*method)(ARGS...))
{
//irrelevant
}
問題は右_getWrapper
の呼び出しである:
class TestClass
{
void TestMethod(int a, float b, bool c)
{
std::cout<<a<<std::endl;
std::cout<<b<<std::endl;
std::cout<<c<<std::endl;
}
};
int main()
{
TestClass testObj;
method_wrapper<int, float, bool> wrap = _getWrapper<int, float, bool>(&testObj, TestClass::TestMethod);
wrap.callInternal(1000, 3.14, true);
//...
system("pause");
return 0;
}
ありません私が_getWrapperで引数を渡そうとしているところで問題になっていますが、それでも私にはわかります:
オーバーロードされた関数のインスタンスはありません引数リストに一致します
OBJECT::*method
は一致しません。TestClass::TestMethod
に直接一致しますか?私も&TestClass::TestMethod
を試しましたが、いずれにも一致しません。
はい、それを修正しました。ありがとう –