テンプレートとstd :: numeric_limits
-
06-07-2019 - |
質問
Atomicというクラスがあり、これは基本的に_Atomic_word
プラスgcc atomic builtinsを呼び出すメソッドです。
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>
にインスタンス化することを希望します(たとえば、私のシステムでは<=>はintの単なるtypedefです)。
これを行う方法はありますか
解決
std::numeric_limits<Atomic>
は、Atomic
をタイプとしてインスタンス化します。これを破壊することはできません。ただし、このようにstd::numeric_limits
をUnderlyingType
に特化できます
template<>
class numeric_limits< Atomic > : public numeric_limits< Atomic::UnderlyingType >
{
};
明らかに<=>を<=>の型として公開します。
所属していません StackOverflow