C++] Enum-only templated class


C++] Enum-only templated class

C Family C++] Enum-only templated class 슬픈단잠 2017. 11. 22. 15:16 이웃추가 본문 기타 기능 template using is_scoped_enum = std::integral_constant{} && std::is_enum{}>; template struct testTemplate { static_assert( is_scoped_enum{}, "Invalid type argument!"

); }; C++ 11 이상에서 template class를 enum만 받을 수 있도록 한정할 경우에 쓸 수 있는 방법입니다. 런타임에 도출을 해봐야 의미가 없으므로, 컴파일 타임 때 에러를 띄우기 위한 기능까지 위의 코드에 모두 구현이 되어 있습니다.

간단하게 enum 한정 class를 제작할 때 사용할 일이 많은데, 계속 까먹어서(?) ...



원문링크 : C++] Enum-only templated class