模板和std :: numeric_limits

时间:2009-10-23 18:34:23

标签: c++ templates numeric-limits

我有一个名为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。)

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:14)

std::numeric_limits<Atomic>将使用Atomic作为类型进行实例化,您无法破坏它。不过,您可以像std::numeric_limits那样专门Atomic

template<>
class numeric_limits< Atomic > : public numeric_limits< Atomic::UnderlyingType >
{
};

您明显将UnderlyingType作为Atomic中的类型公开。