귀하의 클래스는 bool로의 명시적인 변환을 정의하여 해당 인스턴스 't'를 조건문에서 직접 사용할 수 있도록 합니다. 그러나 이 명시적인 변환은 다음과 같은 질문을 제기합니다. 캐스트 없이 't'를 부울로 사용할 수 있는 곳은 어디입니까?
상황별 변환 시나리오
C 표준에서는 4가지를 지정합니다. 값이 상황에 따라 bool로 변환될 수 있는 주요 시나리오:
문:
if, while, for, do-while 문
if (t)
/* statement */;
표현:
부정(!), 논리 AND(&&), 논리 OR(||), 삼항 연산자(?)
!t
t && t2
컴파일 시간 테스트:
static_assert, noException, 명시적, if constexpr(constexpr 변환 필요 연산자)
static_assert(t);
noexcept(t)
알고리즘 및 개념:
NullablePointer, STL 알고리즘의 조건자 또는 비교기 인수
NullablePointer T
std::remove_if(first, last, [&](auto){ return t; });
추가 참고 사항:
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3