АР
Size: a a a
АР
АР
class T {};Скажем любой U, повторяющий интерфейс T, будет удовлетворять C. Допустим мы хотим именно eager (блин как это слово на русский переводится?) трейты - чтобы U удовлетворял C только если явно это укажет
concept C; // C<T> -> true
auto foo(C auto x) { ... }
explicit concept C; // "explicit" keyword here
class T : C { ... };
class U { ... };
auto foo(explicit C auto x) { ... } // or maybe here
foo(T{}); // ok
foo(U{}); // failure
AT
template<typename T, typename ...Types> constexpr bool any_of = (std::is_same_v<T, Types> || ...);
.АР
АР
АР
VS
class T {};Скажем любой U, повторяющий интерфейс T, будет удовлетворять C. Допустим мы хотим именно eager (блин как это слово на русский переводится?) трейты - чтобы U удовлетворял C только если явно это укажет
concept C; // C<T> -> true
auto foo(C auto x) { ... }
explicit concept C; // "explicit" keyword here
class T : C { ... };
class U { ... };
auto foo(explicit C auto x) { ... } // or maybe here
foo(T{}); // ok
foo(U{}); // failure
D
class T {};Скажем любой U, повторяющий интерфейс T, будет удовлетворять C. Допустим мы хотим именно eager (блин как это слово на русский переводится?) трейты - чтобы U удовлетворял C только если явно это укажет
concept C; // C<T> -> true
auto foo(C auto x) { ... }
explicit concept C; // "explicit" keyword here
class T : C { ... };
class U { ... };
auto foo(explicit C auto x) { ... } // or maybe here
foo(T{}); // ok
foo(U{}); // failure
CD
class T {};Скажем любой U, повторяющий интерфейс T, будет удовлетворять C. Допустим мы хотим именно eager (блин как это слово на русский переводится?) трейты - чтобы U удовлетворял C только если явно это укажет
concept C; // C<T> -> true
auto foo(C auto x) { ... }
explicit concept C; // "explicit" keyword here
class T : C { ... };
class U { ... };
auto foo(explicit C auto x) { ... } // or maybe here
foo(T{}); // ok
foo(U{}); // failure
class T { using C_exact = std::true_type; }
CD
class T {};Скажем любой U, повторяющий интерфейс T, будет удовлетворять C. Допустим мы хотим именно eager (блин как это слово на русский переводится?) трейты - чтобы U удовлетворял C только если явно это укажет
concept C; // C<T> -> true
auto foo(C auto x) { ... }
explicit concept C; // "explicit" keyword here
class T : C { ... };
class U { ... };
auto foo(explicit C auto x) { ... } // or maybe here
foo(T{}); // ok
foo(U{}); // failure
CD
AF
CD
AF
AF
CD
AF
AF
AF