함수 리턴타입에 auto?


(바보털) #1

요즘 auto로 리턴타입을 표시하는게 은근히 유행이라 들었습니다(C++). 확실히 코드 쓸 때 줄이 잘 맞아서 보기에도 깔끔하고, 나중에 수정하기도 편한 것 같습니다. 어떤 게 좋을까요?

  1. 고전 스타일
int func1(int xsize, int ysize);
char func2();
  1. 화살표 사용(뭔가 모-던한 느낌…)
auto func1(int xsize, int ysize)-> int;
auto func2()                    -> char;
  • 1번
  • 2번

0 투표자

decltype은 쓰지 않을겁니다. 길어요ㅠㅠ


(ㄴㅂㄷㄱㄷㄱ) #2

C++14 update: C++14 also permits just
auto identifier ( argument-declarations… )
as long as the function is fully defined before use and all return statements deduce to the same type. The -> syntax remains useful for public functions (declared in the header) if you want to hide the body in the source file. Somewhat obviously that can’t be done with templates, but there are some concrete types (usually derived via template metaprogramming) that are hard to write otherwise.

화살표 없이 2번 쓰는 걸 추천


(바보털) #3

decltype이랑 같이 운용하는 것도 많이 보긴 했는데 뭔가 길어서요…
재귀랑 같이 쓰기도 까다롭고.


(L) #4

c++14 오면서 이제 decltype 굳이 안써도 되니 생략하는게 제일 깔끔하다고 생각합니당
타입 알고 싶을 땐 인텔리센스가 다 알려주기도 하고요


(Sexydove) #5

오토가 짱멋있어보여서 2번찍었어요…


(바보털) #6

템플릿 타입 추론이 어리바리 깔 때는 적어줘야함ㅂㄷㅂㄷ


(P.노우렛지Δ) #7

-> 로 타입 명시할거면서 auto는 어불성설이라고 봅니다…


(LAGrange) #8

캄퓨터한테 답정너 시전


(codesafer) #9

생략. 꼭 필요한 경우에만 명시. ( extern, 리턴 위치가 복수고 모호한 타입 등등 )