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?

¿Fue útil?

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
scroll top