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?