typedef unsigned int UI;
UI base; template<typename Par> Par BaseTool(Par *head) {
Par* tail=head;
tail=&base;
return tail;
}
템플릿을 사용해 정의한 위 코드를 아래 코드로 살짝 수정해주면 코드의 간결성과 가독성이 높아진다. 그러니깐 auto를 선호하는게 좋다고 한다.
typedef unsigned int UI;
UI base; template<typename Par> auto BaseTool(Par *head) {
auto tail=head;
tail=&base;
return tail;
}
아래 코드는 더 확 와닿는 예시이다.
template<typename iterator>
void dwim(iterator b, iterator c) {
for(; b!=c; ++b) {
typename std::iterator_traits<iterator>::value_type currValue=*b;
...
}
}
auto 사용
template<typename iterator>
void dwim(iterator b, iterator c) {
for(; b!=c; ++b) {
auto currValue=*b;
...
}
}
참고로 정의한 템플릿 함수가 반환이 존재한다면 함수의 원형 선언에 auto를 사용할 수 있다. 첫 번째 예시의 경우가 해당하고, 두 번째 경우의 함수는 함수의 반환이 존재하지 않기 때문에 void를 사용해 주었다.
템플릿을 사용해 정의한 위 코드를 아래 코드로 살짝 수정해주면 코드의 간결성과 가독성이 높아진다. 그러니깐 auto를 선호하는게 좋다고 한다.
아래 코드는 더 확 와닿는 예시이다.
auto 사용
참고로 정의한 템플릿 함수가 반환이 존재한다면 함수의 원형 선언에 auto를 사용할 수 있다. 첫 번째 예시의 경우가 해당하고, 두 번째 경우의 함수는 함수의 반환이 존재하지 않기 때문에 void를 사용해 주었다.