C++를 처음 접하면 using이라는 키워드는 namespace를 코드에서 작성하기 귀찮아서 빼기 위해 사용하는 경우가 많다.

using namespace std;

하지만 typedef와 비교가 되는 사용법이 있어서 이번 포스팅으로 정리하도록 한다.


typedef를 활용한 변수 별칭 만들기

 

typedef를 사용하는 것은 자료형에 대해 별칭을 만들기 위함이다. 예를 들어 double에 대해서 거리라는 의미를 가지도록 하기 위해 사용한다. 이렇게 사용하는 것이 추후 거리를 의미하는 모든 변수가 float 자료형으로 변경되어야 할 때 한 줄만 바꾸면 되기 때문에 유지보수를 위해서도 사용하는 편이다.

typedef double distance_t;

using을 활용한 변수 별칭 만들기

 

using을 사용하는 것도 typedef를 사용하여 별칭 만드는 것과 목적은 같다. 사용하는 방법은 아래와 같다.

using distance_t = double;

typedef와 using의 차이점

 

C/C++를 사용하지 않는 프로그래머에게 코드를 보여주었을 때 using 키워드의 경우 직관적이라 가독성이 좋다. 그리고 가장 큰 차이점은 using 키워드는 template을 지원한다는 점이다.

template<typename T>
using distance_t = T; // 템플릿 사용 가능

template<typename T>
typedef T distance_t; // 템플릿 사용 불가능

C++ 11 이상이고 template을 사용하게 되는 경우 using 키워드를 사용하는 것이 더 좋을 것이다.


Reference

+ Recent posts