2009-10-23 3 views
3

나는 기본적으로 _Atomic_word 및 gcc 원자 내장 메서드를 호출하는 메서드 인 Atomic이라는 클래스가 있습니다.템플릿 및 std :: numeric_limits

class Atomic{ 
    mutable volatile _Atomic_word value_; 
public: 
    Atomic(int value = 0): value_(value) {} 
    **** blah blah **** 
}; 

내가 std::numeric_limits<underlying integer type>에 인스턴스화 std::numeric_limits<Atomic> 싶습니다 (예를 들어, 내 시스템에 _Atomic_word는 인터넷 용 단지 형식 정의)입니다.

이 방법이 있습니까?

답변

14

std::numeric_limits<Atomic>은 유형으로 Atomic으로 인스턴스화 할 것이므로이를 파괴 할 수 없습니다. 당신은 분명 Atomic의 유형으로 UnderlyingType 노출 어디 그러나이

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

처럼 Atomic에 대한 std::numeric_limits를 전문으로 할 수있다.

+0

+1 상속을 사용하는 템플릿의 힘 : – AraK

+0

그게 내가 필요한 것입니다. 감사. –

관련 문제