2014-05-09 2 views
0

하드 코딩 된 값을 넣으면 해당 함수가 인스턴스화되지 않아도 트리거됩니다. 이 동작이 정확합니까? 아니면 정적 어설 션이 작동하는 방식을 오해합니까?member가 인스턴스화되지 않은 경우에도 static_assert

#include <type_traits> 
template <class T> 
struct Helper 
{ 
    static void do_something() 
    { 
     // Always fails, even when not instantiated. 
     static_assert(false, 
      "You must specialize this class to serialize Enums."); 

     // Work around: 
     static_assert(!std::is_same<T, T>::value, 
      "You must specialize this class to serialize Enums."); 
    } 
}; 

사용 : g를 ++ (우분투/리나 4.6.1-9ubuntu3) 4.6.1

+0

흠, 참하십시오 DUP입니다 .... 내가 그것을 삭제해야 하는가? – nishantjr

+0

@nishantjr : 우리는 그것을 닫을 것입니다. – MSalters

답변

0

SFINAE이 함수 인수 작동 및 유형, 템플릿되지 매개 변수를 반환합니다.

+1

죄송합니다. SFINAE와 관련이 없습니다. 최소한의 예제를 제공하도록 개정 됨 – nishantjr

관련 문제