Auto with function (C++11, C++14)
auto 는 함수의 반환 자료형 자리에 올 수 있습니다.
#include <iostream>
auto plus(int a,int b) -> decltype(a+b)
{
return a+b;
}
int main(int argc, const char * argv[])
{
printf("%d\n",plus(1,1));
return 0;
}
auto | function(...) | -> | return type |
---|
-> 반환 자료형' 을 같이 명시해야 합니다. 예제는 decltype 을 사용해서 파라미터 합의 자료형을 유추합니다.
반환형 자리에 decltype 을 바로 사용하는 것도 물론 가능하지만, 문법 상 decltype 보다 뒤에 오게 되는 파라미터 인수를 사용할 수 없게 됩니다.
C++14 에서는 '-> 반환 자료형' 을 생략할 수 있습니다.
- 이때는 return 값으로 부터 반환형을 유추합니다. (template argument deduction rules)
이 기능은 함수를 보다 유연하게 작성할 수 있도록 도와주며, 특히 template 과 함께 사용 시에 강력한 기능이 될 수 있습니다.