[Effective Modern C++] 9. typedef보다 별칭 선언을 선호하자
728x90
반응형
아래처럼 typedef는 템플릿화를 지원하지 않지만 별칭 선언은 지원한다.
template <typename T> // MyAllocList<T>::type은 std::list<T, MyAlloc<T>>와 동의어이다.
struct MyAllocList
{
typedef std::list<T, MyAlloc<T>> type;
};
MyAllocList<Widget>::type lw; // 클라이언트 코드
// 별칭 템플릿은 훨씬 더 간단하고, 직접적으로 표현할 수 있다.
template <typename T> // MyAllocList<T>::type은 std::list<T, MyAlloc<T>>와 동의어이다.
using MyAllocList = std::list<T, MyAlloc<T>>;
MyAllocList<Widget> lw; // 클라이언트 코드
또 별칭 템플릿에서는 "::type" 접미어를 붙일 필요가 없다.
그래서 C++11의 모든 타입 변환에 대한 별칭 템플릿 버전들을 C++14에 포함시켰다.
728x90
반응형
'Books > Effective Modern C++' 카테고리의 다른 글
[Effective Modern C++] 11. 정의되지 않은 비공개 함수보다 삭제된 함수를 선호하자 (0) | 2022.09.03 |
---|---|
[Effective Modern C++] 10. 범위 없는 enum보다 범위 있는 enum을 선호하자 (0) | 2022.08.28 |
[Effective Modern C++] 8. 0과 NULL보다 nullptr을 사용하자 (0) | 2022.08.28 |
[Effective Modern C++] 7. 객체 생성 시 괄호(())와 중괄호({})를 구분하자 (0) | 2022.08.28 |
[Effective Modern C++] 6. auto가 원치 않은 타입으로 추론 될 때에는 명시적 타입의 초기화를 생각하자 (0) | 2022.08.27 |
댓글
이 글 공유하기
다른 글
-
[Effective Modern C++] 11. 정의되지 않은 비공개 함수보다 삭제된 함수를 선호하자
[Effective Modern C++] 11. 정의되지 않은 비공개 함수보다 삭제된 함수를 선호하자
2022.09.03 -
[Effective Modern C++] 10. 범위 없는 enum보다 범위 있는 enum을 선호하자
[Effective Modern C++] 10. 범위 없는 enum보다 범위 있는 enum을 선호하자
2022.08.28 -
[Effective Modern C++] 8. 0과 NULL보다 nullptr을 사용하자
[Effective Modern C++] 8. 0과 NULL보다 nullptr을 사용하자
2022.08.28 -
[Effective Modern C++] 7. 객체 생성 시 괄호(())와 중괄호({})를 구분하자
[Effective Modern C++] 7. 객체 생성 시 괄호(())와 중괄호({})를 구분하자
2022.08.28