2012-12-20 3 views
0

decltype의 결과는 템플릿 식별자와 동일합니까? (T와 그 값을 나타낼 때 올바른 용어는 무엇입니까?). 즉, 어설 션이 실패하는 경우가 있습니까?템플릿 매개 변수에 대한 decltype 결과입니다.

template<typename T> 
void foo(T x) 
{ 
    static_assert(std::is_same<decltype(x), T>::value, "decltype check failed"); 
} 
+1

"올바른 용어는 무엇입니까?" 'T'는 * 템플릿 매개 변수 *이고 그 값은 * 템플릿 인자 *입니다. –

답변

1

변수 유형 x은 T이며, 따라서 static_assert는 항상 전달됩니다.

+0

몇 가지 수정 사항으로 인해 변경 될 수 있습니까? 'decltype ((x))'? –

+1

@MichaWiedenmann, 확실 : http://ideone.com/t06kJC –

+0

죄송합니다. 직접 확인 했어야합니다. 이유는 내가 decltype 및 템플릿 매개 변수 공제의 미세한 세부 사항을 이해하기 어렵다고 생각하기 때문입니다. –

관련 문제