Почему C++ требует, чтобы пользовательский оператор преобразования мог быть нестационарным членом? Почему не разрешено использовать автономные функции, как для других унарных операторов? Что-то вроде этого:оператор преобразования как автономная функция
operator bool (const std::string& s) { return !s.empty(); }
Я не понимаю ваших аргументов. Пример, который вы дали, не является неявным преобразованием. С другой стороны, основной причиной определения оператора преобразования является использование неявного преобразования. – shura
@shura Да, это так. «foo» неявно преобразуется в строку, которая затем явно преобразуется в bool. Я уточнил свой ответ, чтобы прояснить это. – 2010-01-31 13:58:31
Нейл, теперь я вижу твою точку. – shura