귀하의 클래스는 bool로의 명시적인 변환을 정의하여 조건문에서 해당 인스턴스 't'를 직접 사용할 수 있도록 합니다. 그러나 이 명시적 변환은 다음과 같은 질문을 제기합니다. 캐스트 없이 't'를 부울로 사용할 수 있는 곳은 어디입니까?
상황별 변환 시나리오
C 표준에서는 4가지를 지정합니다. 값이 상황에 따라 bool로 변환될 수 있는 주요 시나리오:
문:
if, while, for, do-while 문
<code class="cpp">if (t) /* statement */;</code>
식:
부정(!), 논리 AND(&&), 논리 OR(||) , 삼항 연산자(?)
<code class="cpp">!t t && t2</code>
컴파일 시간 테스트:
static_assert, noException,explicit, if constexpr(constexpr 변환 연산자 필요)
<code class="cpp">static_assert(t); noexcept(t)</code>
알고리즘 및 개념:
NullablePointer, 조건자 또는 비교기 STL 알고리즘의 인수
<code class="cpp">NullablePointer T std::remove_if(first, last, [&](auto){ return t; });</code>
추가 참고 사항:
위 내용은 `if` 문 너머: 명시적 `bool` 변환이 있는 유형을 형변환 없이 사용할 수 있는 다른 곳은 어디입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!