デフォルト引数ありの関数をrequiresの中で呼び出せるかの判断をしようとしていますが、デフォルト引数は考慮されないようです。
これは型がvoid(*fp)(int,int)となるから以下のコードのように書くとfalseになるというのは理解しています。
では、デフォルト引数を考慮するような書き方が分かりません。そもそも存在しますか?
C++
1#include <type_traits> 2#include <iostream> 3 4template <typename T> 5concept C = requires(T x) 6{ 7 x(10); 8}; 9 10void f(int, int = 1){} 11 12int main() 13{ 14 std::cout << std::boolalpha << C<decltype(f)> << std::endl; //falseと出力される 15 16 return 0; 17}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。