Quando si tratta di costruttori, l'aggiunta della parola chiave explicitimpedisce a un compilatore entusiasta di creare un oggetto quando non era la prima intenzione del programmatore. Tale meccanismo è disponibile anche per gli operatori di casting?
struct Foo
{
operator std::string() const;
};
Qui, ad esempio, mi piacerebbe poter eseguire il cast Fooin a std::string, ma non voglio che tale cast avvenga in modo implicito.
toString, piuttosto cheoperator std::string. Naturalmente, questo potrebbe causare problemi con alcuni modelli. L'ho sempre usatotoStringe non mi ha mai causato problemi, ma immagino che questo possa dipendere dal tuo stile di programmazione.