Skip to content

template type & auto #8

Description

@CharmStrange
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를 사용해 주었다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C++C++Tipstips 4 programming

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions