using은 typedef의 단점을 해결한 버전이다
typedef __int64 id;
using id2 = int;
using의 장점
1) 직관성
typedef void (*MyFunc)();
using MyFunc2 = void(*)();
2) 템플릿과 함께 사용 가능
template<typename T>
using List = std::vector<T>;
//template<typename T>
//typedef std::vector<T> List2;
// typedef는 템플릿 사용 불가
int main()
{
List<int> li;
li.push_back(1);
}
물론, 아래와 같이
typedef을 간접적으로 사용해서 템플릿과 사용할 수도 있긴 하다
template<typename T>
struct List2
{
typedef std::list<T> type;
}
int main()
{
List2<int>::type li2;
}
'C++ > [루키스] Modern C++' 카테고리의 다른 글
[MC++] delete (0) | 2023.07.01 |
---|---|
[MC++] enum class (0) | 2023.06.30 |
[MC++] nullptr (0) | 2023.06.29 |
[MC++] 중괄호 초기화 {} (0) | 2023.06.29 |
[MC++] auto (0) | 2023.06.29 |