Проверьте, существует ли член класса, который является классом.C++

Программы на C++. Форум разработчиков
Anonymous
Проверьте, существует ли член класса, который является классом.

Сообщение Anonymous »

Я имею в виду этот ответ.
Пример относится к целочисленному типу 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]

Вернуться в «C++»