[C++] typedef 와 using
1. Using
- using, typedef은 용도가 비슷하며 타입의 별명을 만드는 것
- 차이
- typedef는 template의 별명이 되지 못함
- using은 template의 별명이 가능
2. 코드로 알아보기
- web_compiler 에서 확인
//typedef int DWORD;
//typedef void(*F)();
// C++11 using
using DWORD = int;
using F = void(*)();
int main()
{
DWORD n; // int
F p; // 함수 포인터
}
- typedef는 템플릿의 별명이 불가능
#include <set>
#include <functional>
#include <iostream>
using namespace std;
// 타입의 별명은 가능
// typedef set<int> SET;
// typedef set<double> SETD;
// 템플릿의 별명은 에러
// template<typename T> typedef set SET; // error
// using은 템플릿의 별명 가능
template<typename T>
using SET = set<T>;
int main()
{
SET s2; //set<int> s;
s2.insert(10);
s2.insert(15);
s2.insert(6);
for (auto n : s2)
cout << n << endl;
}
참고
codenuri 강석민 강사 강의 내용기반으로 정리한 내용입니다.
코드누리
This is personal diary for study documents.
Please comment if I'm wrong or missing something else 😄.
댓글남기기