ID
Size: a a a
ID
ID
[
D
O
A и B являются потенциально бесконечными множествами допустимых типов[
[
[
D
[

D
D
D
[
[
O
template<typename T>
concept fooable_or_barable = fooable<T> || barable<T>;
void baz(fooable_or_barable auto x) {
if constexpr (fooable<decltype(x)>)
x.foo();
else
x.bar();
}
struct Fooable1 {
void foo();
};
struct Fooable2 {
void foo();
};
struct Barable {
void bar();
};
struct SmthDifferent {};
int main() {
baz(Fooable1{});
baz(Fooable2{})
baz(Barable{});
// compile-time error:
// baz(SmthDifferent{})
}[
void quz(fooable_or_barable auto x) {
if constexpr (fooable<decltype(x)>)
x.fooooo();
else
x.barrrrr();
}
то это сломает компайл всей проге потому что там нереализовано что-то из моего?D