コードは私の必要性をよりよく説明していると思います:
template <typename F>
struct return_type
{
typedef ??? type;
};
となることによって:
return_type<int(*)()>::type -> int
return_type<void(*)(int,int)>::type -> void
私は知っdecltype
てresult_of
いますが、引数を渡す必要があります。単一のテンプレート パラメーターから関数ポインターの戻り値の型を推測したいと考えています。戻り値の型をパラメーターとして追加することはできません。これはまさにここで隠したいことだからです...
ブーストに解決策があることは知っていますが、それを使用することはできません。ブーストからそれを掘り出そうとすると、見事な失敗に終わりました (よくあることですが)。
C++11 ソリューションを歓迎します (VS2012 でサポートされている限り)。