これできないんだっけ?
#include <functional> struct functor { typedef void result_type; void operator()() const {} }; template <class R, class ...Args> void foo(std::function<R(Args...)> f) {} int main() { foo(functor()); // エラー! }
ConceptGCCでは、foo(functor())にマッチするオーバーロードがないってエラーになって
VC++9.0 SP1で可変引数テンプレートを使わずにやってみて、やっぱりエラーになった。