Qaupot Blog
Software Engineering, Trip

112. auto with function / Cpp11,14

🕐 Sun, 28 Aug 2016 09:00:00 GMT 🕓 Wed, 25 Aug 2021 14:34:00 GMT

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 과 함께 사용 시에 강력한 기능이 될 수 있습니다.

이 블로그는 개인 블로그입니다. 게시글은 오류를 포함하고 있을 수 있지만, 저자는 오류를 해결하기 위해 노력하고 있습니다.
게시글에 별도의 고지가 없는 경우, 크리에이티브 커먼즈 저작자표시-비영리-변경금지 4.0 라이선스를 따릅니다.

This blog is personal blog. published posts may contain some errors, but author doing efforts to clear errors.
If post have not notice of license, it under creative commons Attribution-NonCommercial-NoDerivatives 4.0.