그래서 내가 bool에있는 변환 연산자가있는 유형에 대한 작업을 제한하기 위해 노력하고있어 ++ 11 static_assert
및 macro-ish C++ 98 정적 어설 션.삭제 기능
개인적으로 사용하거나 C++ 11에서 삭제하는 것을 시도하는 사용자에게 다소 유용한 메시지를 오류로 남기고 싶습니다.
이것은 msvc와 g ++/clang의 차이로 인해 MSVC에서만 작동합니다. g ++/clang과 정적 어설 션은 항상 발생합니다. "삭제 된"기능이 사용되지 않는 경우에도 마찬가지입니다. 내가 처음이를 보았다
template<typename R>
STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison&
operator&&(const R&);
:이 같은 -
은트릭을 할 것입니다 내가 본 유일한 점은 템플릿의 반환 형식으로 메시지와 같은 이름의와 정의되지 않은 형식을 사용하는 것입니다 here
C++ 98에서이 작업을 수행하는 다른 방법이 있습니까? 사용자가이 기능을 사용하려고 시도하면 사용자 지정 메시지가있는 삭제 된 기능이 있습니까?
@ 한스 파산 트 감사합니다. (이것에 관한 [> this <] (http://stackoverflow.com/questions/39479163) question) – onqtam