suffix return

  • 개념

    • 함수 반환 타입을 뒤쪽에 표기하는 법
    • C++11부터 지원
    • trailing return type, suffix return type
    • 람다 표현식, 함수 템플릿에 사용
  • 문법

    • auto square(int a) -> int
  • 필요 이유

      template<typename T1, typename T2>
    ? add(T1 a, T2 b) -> 애매
    { return a + b; }
    // c++11
    // 앞에 decltype을 쓸 수 없음
    template<typename T1, typename T2>
    auto add(T1 a, T2 b) -> decltype (a + b)
    { return a + b; }
    // c++14 ?
    template<typename T1, typename T2>
    auto add(T1 a, T2 b)
    { return a + b; }`