Perché il C++ richiede che l'operatore di conversione definito dall'utente possa essere membro non statico? Perché non è consentito l'uso di funzioni standalone come per gli altri operatori unari? Qualcosa di simile a questo:Operatore di conversione come funzione indipendente
operator bool (const std::string& s) { return !s.empty(); }
Non capisco il tuo argomento. L'esempio che hai fornito non è una conversione implicita. D'altra parte il motivo principale per la definizione di un operatore di conversione è l'uso della conversione implicita. – shura
@shura Sì, lo è. "foo" viene convertito implicitamente in una stringa, che viene quindi convertita esplicitamente in un bool. Ho aggiornato la mia risposta per chiarire questo. –
Neil, ora capisco il tuo punto. – shura