Jeg traff en ulempe i dag ... Jeg ønsket å definere en liten malbasert hjelper klasse:
template<class T>
CMyClass
{
public :
CMyClass() { size_t iSize = sizeof(T); } // Allowed.
size_t GetElementSize() const { return sizeof(T); } // C2027.
};
og selvfølgelig, ville det ikke kompilere (C2027). Mitt spørsmål var, er det mulig å få størrelsen på type? Grunnen til at jeg trenger dette er at den type gjenstanden er konstruert med kan være en rekke av forskjellig definerte strukturer, og så jeg må få størrelsen på strukturen i bruk, under kjøring.
Gjennom en rask litt eksperimentering, fordi jeg er sta, virker det som jeg kan bruke sizeof (T) i ctor, men ikke i den ikke-ctor funksjon - så spørsmålet mitt nå er ... hvorfor ?!