C++ is_trivially_copyable 확인
-
14-11-2019 - |
문제
C++ 유형이 간단하게 복사 가능한지 여부를 확인하는 방법은 무엇입니까?지정된 템플릿 유형 T와 함께 memcpy 및 memcmp 함수를 사용하는 클래스가 있는데 memcpy로 복사하기에 안전하지 않은 유형에 대해 어설션을 실행하고 싶습니다.(기존 표준으로) 그렇게 할 수 있는 방법이 있나요?
해결책
아니요, C++98/C++03에서는 불가능합니다.이런 것들이 왜냐면 <type_traits>
C++0x에 추가되었습니다.다음의 일부 기능은 <type_traits>
SFINAE 원칙을 사용하여 C++03에서 구현할 수 있지만 다음을 포함한 여러 가지가 있습니다. std::is_trivially_copyable<T>
, 내장된 컴파일러 지원이 필요합니다.
다른 팁
이를 부스트에서 사용할 수있는 유형 특성이 있습니다.
그러나 Type 유형이 사소하게 복사 할 수있는 경우 복사 생성자로 최적화 도구가 생성 될 것보다 더 빠르지 않을 것입니다.복사 생성자를 사용하십시오.
가장 가까운 것은 부스트 :: is_pod <> .
제휴하지 않습니다 StackOverflow