[c++] typedef 와 using의 차이점

달피·2021년 5월 5일
0

c++11 부터 사용할 수 있는 using키워드는 typedef 와 동일하게 type의 별칭을 만드는 키워드이다. 얼핏 사용하다 보면 같은 기능을 가진 것으로 보이지만 하나의 큰 차이점이 있다. 바로 template의 별칭을 지정할 수 있느냐 없느냐의 차이이다.

template<typename T>
using ListType = vector<T>; // ok

template<typename T>
typedef vector<T> ListType; // error

위의 특징 때문에 using키워드를 template alias 라고 부른다.
만약 template에 대한 별칭을 만들 필요가 없으며 c++11 보다 낮은 표준과의 이식성을 생각하면 typedef를 써도 전혀 문제는 없다.


profile
개발 오답노트

0개의 댓글