Шаблоны C ++: как определить, подходит ли тип для создания подклассов

Допустим, у меня есть шаблонный класс, зависящий от типа T . T может быть почти любым: int , int * , pair или struct lol ; это не может быть недействительным , ссылкой или чем-то еще с квалификацией cv. Для некоторой оптимизации мне нужно знать, могу ли я создать подкласс T . Итак, мне понадобится некоторый тип признака is_subclassable , определенный как логическая комбинация основных признаков или с помощью некоторых уловок SFINAE.

В исходном примере int и int * не подклассифицируются, в то время как pair и struct lol являются.

EDIT : Как указано ниже, союзы также являются не подклассифицируется, и T также может быть типом объединения.

Как мне написать тип характеристики, который мне нужен?

11
задан doublep 30 June 2011 в 20:57
поделиться