Hice una búsqueda para esta pregunta pensando que alguien debe haberla preguntado antes. No encontré ningún resultado, por lo que si lo ha sido, publique el enlace y no dude en cerrar la pregunta.¿Qué hace este colon en una declaración enum?
me encontré con este código en EASTL:
enum : size_type { // size_type = size_t
npos = (size_type)-1,
kMaxSize = (size_type)-2
};
nunca he encontrado una declaración enum
así. ¿Qué hace el :
en este caso?
Creo que C++ 0x requiere 'clase enum' cuando se especifica el tipo subyacente. Sin la 'clase', debe ser una extensión compilador-proveedor. –
@Jesse: Ah, está bien. +1 a tu respuesta. – GManNickG
@Jesse: en realidad, el código sin 'clase 'funciona bien en C++ 11 y posterior. El uso de 'enum class' o' enum struct' en lugar de plain 'enum' solo hace que la enumeración * alcance * en lugar de * unscoped *, es decir, previene las conversiones enteras implícitas. Proporcionar el tipo subyacente es posible en cualquier caso. – Frank