私はコンセプトで遊んでいます。ここで私はメソッドのシグネチャに基づいてコンセプトを作成しようとしている最低限の例です:概念:引数のあるメソッドのシグネチャをチェックする
私の驚きの書き込み{ a.bar(int) } -> int
へ
template<typename T>
concept bool myConcept() {
return requires(T a, int i) {
{ a.foo() } -> int;
{ a.bar(i) } -> int;
};
}
struct Object {
int foo() {return 0;}
int bar(int) {return 0;}
};
static_assert(myConcept<Object>(), "Object does not adhere to myConcept");
は動作しませんでしたので、私はrequires
表現への追加の引数を追加することに頼っ。これはちょっと変わったようで、同じことをする方法があるのだろうかと思っていました。働いていた別のものは{ a.bar((int)0) } -> int
のようなものを使っていましたが、私はこれを悪化させています。
私はあなたがメイクのようです()と私は標準でそれを見たいと思います。 –
YSC