私はテンプレートの引数としてテンプレートメソッドを渡したいと思います。テンプレート引数としてテンプレートメソッドを渡すにはどうすればよいですか?
私はこのエラーを取得していますなぜ私は理解していない:
struct A {
template <class Fn, class... Args>
void f(Fn&& g, Args&&... args) {
g(std::forward<Args>(args)...);
}
};
struct B {
template <class... Args>
void doSomething(Args&&... args) {}
void run() {
A a;
a.f(&doSomething<int, double>, 1, 42.); // error here
}
};
int main() {
B b;
b.run();
return 0;
}
任意のアイデア:
no known conversion for argument 1 from '<unresolved overloaded function type>' to 'void (B::*&&)(int&&, double&&)
をここにコードがありますか?
だから私がする必要がありますstd :: invokeを使用しますか? – infiniteLoop
@mikeDundeeいつでもラムダを使うことができます:) – Rakete1111