2017-10-24 16 views
2

このページhttp://en.cppreference.com/w/cpp/language/constraintsは、関数概念の戻り値の型がboolでなければならないことを示します。ここにオプションが1つしかない場合、最初に戻り値の型を指定する必要がある根拠は何ですか?なぜだけではなく、この構文のようなもので行く関数概念の戻り値の型(ブールでなければならない)

template <typename T> 
concept DumbConcept() { 
    return requires(T a,T b) { 
     requires std::is_same<decltype(a+b),bool>::value; 
    }; 
} 
+2

あなたはこの質問を(一般的に)提起した唯一の人ではありません。 IIRCでは、C++ 2aの提案はそれを削除しようとしています。 – StoryTeller

+2

これはメタスタックエクスチェンジの問題なのかもしれませんが、なぜこれがダウンリストされていますか? – George

+2

作業草案にマージされた概念には、「ブール」を取り除くことに加えて、機能概念AFAICRさえありません。 – chris

答えて

1

戻り値の型を必要とする論理的根拠は、最初の場所で指定されるものをここで一つだけのオプションがある場合は?

これは関数であり、関数には戻り値の型があるためです。いいえ、それはそれが正当な理由でした。

C++ 20に採用された概念のバージョンには、機能概念は含まれていませんでした。また、変数の概念の一部にboolも含まれていませんでした。あなたが指摘しているように、それは冗長です。

関連する問題