Załóżmy, że mam pewną klasę szablonów w zależności od typu T
. T
może być prawie wszystko: int
, int*
, pair <int, int>
lub struct lol
; nie może to być void
, referencja ani nic innego, co kwalifikuje się do cv. Dla pewnej optymalizacji muszę wiedzieć, czy mogę podklasę T
. Potrzebowałam więc pewnej cechy typu is_subclassable
, określanej jako logiczna kombinacja podstawowych cech lub niektórych sztuczek SFINAE.Szablony C++: jak określić, czy dany typ nadaje się do podklasy
W pierwotnym przykład int
i int*
nie subclassable, a pair <int, int>
i struct lol
są.
EDIT: Jak litb wskazał poniżej, związki nie są również subclassable i T
może być Union Typ również.
Jak napisać typ cechy, której potrzebuję?
Hmm. Czy [is_class] (http://msdn.microsoft.com/en-us/library/bb982638.aspx) będzie wystarczający? Niepewny. –