Проверьте, существует ли член класса, который является классом.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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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