Sua classe define uma conversão explícita para bool, permitindo que você use sua instância 't' diretamente em instruções condicionais. No entanto, esta conversão explícita levanta a questão: onde mais 't' pode ser usado como um bool sem conversão?
Cenários de conversão contextual
O padrão C especifica quatro principais cenários onde um valor pode ser convertido contextualmente em bool:
Statements:
if, while, for, do-while Statements
if (t)
/* statement */;
Expressões:
Negação (!), lógico AND (&&), lógico OU (||), operador ternário (?)
!t
t && t2
Testes em tempo de compilação:
static_assert, noexcept, explicit, if constexpr (requer conversão constexpr operador)
static_assert(t);
noexcept(t)
Algoritmos e conceitos:
NullablePointer, argumentos de predicado ou comparadores em algoritmos STL
NullablePointer T
std::remove_if(first, last, [&](auto){ return t; });
Notas adicionais:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3