Quando si tratta di costruttori, l'aggiunta della parola chiave explicit
impedisce 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 Foo
in 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 usatotoString
e non mi ha mai causato problemi, ma immagino che questo possa dipendere dal tuo stile di programmazione.