'decltype'が静的である場合、なぜ三項演算子はテンプレートの末尾の戻り値の型で機能するのですか?

バーニー

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で比較するのですか(テンプレートのインスタンス化中に静的タイプを把握するため)?そして、コンパイル時にどのように正しく機能しますか?

MSalters

ランタイム値に応じて、またはdecltype(b<a?a:b)のタイプを生成すると思われるようです。そうではなく、一般的なタイプを生成します。ab

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ