C++/Template
함수 리턴 타입 선언 방법.
산과 나무
2019. 5. 16. 09:19
#include <iostream> template<typename T1,typename T2, typename RT> RT GetValue(T1 nValue, T2 nValue2) { return RT(nValue + nValue2); } template<typename RT,typename T1, typename T2> RT GetValue2(T1 nValue, T2 nValue2) { return RT(nValue + nValue2); } //C++ 14 template<typename T1, typename T2> auto GetValue3(T1 nValue, T2 nValue2) { return (nValue + nValue2); } template<typename T1, typename T2> auto GetValue4(T1 a, T2 b)->decltype((a < b) ? a : b) //faily elaborate { return a + b; } int main() { GetValue<int,int,int>(10, 20.1); // 리턴값을 위해, 템플릿 파라미터 3개를 명시했다. GetValue2<double>(20, 20.2); // 리턴값을 먼저 선언해서, 간결해졌다. auto nRet = GetValue3(20, 20.2); //리턴타입을 auto로 선언. auto nRet2 = GetValue4(10, 10.1); // 리턴타입을 decltype으로 선언하여, 명시했다. return 0; }