11

私は、 Going Native 2013で Bjarne Strustrup の講演を見ました。彼は、C++ の今後の概念ライト機能について次の例を示しています。

void sort(Container& c); // terse notation

// Expands to
template <Container __Cont>
  void sort(__Cont& c); // shorthand notation

// Expands to 
template <typename __Cont>
  requires Container<__Cont>()
    void sort(__Cont & c);

私の質問は、これが可変個引数テンプレートでどのように機能するかです。

概念maximumを使用して可変引数関数を定義したいとします。Comparable次の構文は受け入れられますか?

auto maximum(Comparable a)
{
     return a;
}

auto maximum(Comparable c, Comparable... rest)
{        
    return std::max(a, maximum(rest...));
}

その場合Comparable...、パラメーター パック内のすべての要素が同じ型であるか、パックにと?Comparableの両方を含めることができるようにすべての型であることを意味します。(どちらも比較可能ですが、互いにではありません)intstring

好奇心旺盛な人は知りたがっています。

4

2 に答える 2