Überprüfen Sie, ob ein Klassenmitglied – also eine Klasse – existiertC++

Programme in C++. Entwicklerforum
Anonymous
 Überprüfen Sie, ob ein Klassenmitglied – also eine Klasse – existiert

Post by Anonymous »

Ich beziehe mich auf diese Antwort.
Das Beispiel gilt für den Integraltyp int. Ersetzt man es durch eine Klasse, funktioniert das Beispiel nicht und der Ausdruck static int const value = sizeof(f(0)); wird immer zu 2 aufgelöst.

Code: Select all

#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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post