私はちょうどthis really nice talkを見たことがあります。ロックハード:C++ Evilving Boris Jabes。 高次ジェネリックプログラミングに関する話のセクションでは彼は次のようにその戻り値の型にに関してより一般的な関数の一例であり、少数のテンプレート関数につながる啓発C++の使用法11 decltype
template <typename Func>
auto deduce(const Func & f) -> decltype(f())
{..}
これをオーバーロードすることを言いますしかし
template <typename Func>
Func deduce(const Func & f)
{..}
はので、私は本当にがdecltype
のユニークな能力を示していない選択された例を推測し、次のようにプレーンなテンプレート構文を使用して実現することができます。誰もそのようなより多くの例を与えることができますの使用法decltype
の使用?容器CのVALUE_TYPEをAutodeducting
号最初の例では、 ''推測(F) '' '' Func'''の結果の型を返すことを意味します。 2番目の例は、 '' '' '(f)' ''が '' Func'''を返すことを意味します。違いが分かりますか? –
ああ、申し訳ありませんが、 'decltype'の引数の中に余分な'() 'がありませんでした。私の間違い。 –