我有一个名为Atomic的类,它基本上是一个_Atomic_word
加上调用gcc原子内置函数的方法。
class Atomic{
mutable volatile _Atomic_word value_;
public:
Atomic(int value = 0): value_(value) {}
**** blah blah ****
};
我希望std::numeric_limits<Atomic>
实例化为std::numeric_limits<underlying integer type>
(例如,在我的系统_Atomic_word
上只是int的typedef。)
有办法做到这一点吗?
答案 0 :(得分:14)
std::numeric_limits<Atomic>
将使用Atomic
作为类型进行实例化,您无法破坏它。不过,您可以像std::numeric_limits
那样专门Atomic
template<>
class numeric_limits< Atomic > : public numeric_limits< Atomic::UnderlyingType >
{
};
您明显将UnderlyingType
作为Atomic
中的类型公开。