模板和std::numeric_limits

3

我有一个名为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<底层整数类型>(例如,在我的系统上,_Atomic_word只是int的typedef)。
有没有办法做到这一点?
1个回答

15

std::numeric_limits<Atomic>将以Atomic作为类型实例化,您无法破坏它。但是,您可以通过以下方式为Atomic专门化std::numeric_limits

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

你显然在 Atomic 中将 UnderlyingType 暴露为一种类型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接