模板和std :: numeric_limits

pyt*_*hor 3 c++ templates numeric-limits

我有一个名为Atomic的类,它基本上是一个_Atomic_word调用gcc原子内置函数的加法方法.

class Atomic{
    mutable volatile _Atomic_word value_;
public:
    Atomic(int value = 0): value_(value) {}
    **** blah blah ****
};
Run Code Online (Sandbox Code Playgroud)

我想std::numeric_limits<Atomic>实例化std::numeric_limits<underlying integer type>(例如在我的系统_Atomic_word上只是int的typedef).

有没有办法做到这一点?

Tro*_*our 14

std::numeric_limits<Atomic>将实例Atomic化为类型,你不能颠覆它.但是,你可以专门std::numeric_limitsAtomic这样的

template<>
class numeric_limits< Atomic > : public numeric_limits< Atomic::UnderlyingType >
{
};
Run Code Online (Sandbox Code Playgroud)

你明显在哪里暴露出来UnderlyingType的类型Atomic.