Plantillas y std :: numeric_limits
-
06-07-2019 - |
Pregunta
Tengo una clase llamada Atomic que es básicamente un _Atomic_word
más métodos que llaman a los gcc atomic builtins.
class Atomic{
mutable volatile _Atomic_word value_;
public:
Atomic(int value = 0): value_(value) {}
**** blah blah ****
};
Me gustaría std::numeric_limits<Atomic>
crear una instancia de std::numeric_limits<underlying integer type>
(por ejemplo, en mi sistema <=> es solo un typedef para int).
¿Hay alguna manera de hacer esto?
Solución
std::numeric_limits<Atomic>
se instanciará con Atomic
como tipo, no puede subvertir eso. Sin embargo, podría especializarse std::numeric_limits
para UnderlyingType
como este
template<>
class numeric_limits< Atomic > : public numeric_limits< Atomic::UnderlyingType >
{
};
donde obviamente expones <=> como un tipo en <=>.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow