문제

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 <> .

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top