Modelos C ++: como determinar se um tipo é adequado para a subclasse

Digamos que eu tenha alguma classe de modelo, dependendo do tipoT. T poderia ser quase qualquer coisa:int, int*, pair <int, int> oustruct lol; não pode servoid, uma referência ou qualquer coisa qualificada como cv. Para alguma otimização, preciso saber se posso subclasseT. Então, eu precisaria de algum tipo de característicais_subclassable, determinado como uma combinação lógica de características básicas ou através de alguns truques da SFINA

No exemplo original,int eint* não são subclassáveis, enquantopair <int, int> estruct lol estamos

EDITA: Conforme mencionado abaixo, os sindicatos também não são subclassáveis eT também pode ser do tipo união.

Como escrevo o tipo de característica de que preciso?

questionAnswers(1)

yourAnswerToTheQuestion