2016-06-26 5 views
3

제로 값을 반환한다 템플릿 함수기본 불명 템플릿 유형

template<typename T> 
T foo(){ 
    // ... 
    // Error occured 
    if(error) 
    return 0; 
    // ... 
} 

가정 0, 0.0f, nullptr ... 오류가 발생 T 유형에 따라.

0 알 수없는 템플릿 유형을 얻는 방법? C#에서는이 작업을 수행하기 위해 default(T)을 쓸 수 있습니다.

C++에서이를 수행하는 방법은 무엇입니까? (C++ 11 년 이후), 아니면 그냥 return {}; (list initialization (since C++11) 참조)이 T의 기본 값을 반환

답변

5

당신은 return T(); 또는 return T{}; 같은 value initialization를 사용할 수 있습니다.

+0

어느 것을 원하십니까? – Matthias

+0

@Matthias'return T();'와'return T {};'는 같은 효과를 내거나 괜찮아 보입니다. 'return {};'은 가장 짧은 것이고, 그것을 사용하고 싶을 수도 있습니다. – songyuanyao