Я имею в виду этот ответ.
Пример относится к целочисленному типу int. При замене его классом пример не работает, и выражение static int const value = sizeof(f(0)); всегда разрешается до 2.
#include
class foo
{
int bar;
};
template struct HasFoo {
struct Fallback { foo privateMember; }; // introduce member name "privateMember"
struct Derived : T, Fallback { };
template struct ChT;
template static char (&f(ChT*))[1];
template static char (&f(...))[2];
static int const value = sizeof(f(0));
// Original example has static bool const value = sizeof(f(0)) == 2;
};
class A { private: foo privateMember; };
class B { int X; };
int main() {
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79832020/check-if-class-member-which-is-a-class-does-exist[/url]
Я имею в виду этот ответ. Пример относится к целочисленному типу int. При замене его классом пример не работает, и выражение static int const value = sizeof(f(0)); всегда разрешается до 2. [code]#include