Josuttisの本には、次の例があります。
template<typename T1, typename T2>
auto max (T1 a, T2 b) -> decltype(b<a?a:b)
{
return b<a?a:b;
}
しかし
b<a
一部はランタイムに属しますよね?では、なぜそれをdecltypeで比較するのですか(テンプレートのインスタンス化中に静的タイプを把握するため)?そして、コンパイル時にどのように正しく機能しますか?
ランタイム値に応じて、またはdecltype(b<a?a:b)
のタイプを生成すると思われるようです。そうではなく、一般的なタイプを生成します。a
b
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加