Почему C ++ 0x не одобряет неявные преобразования для пользовательских типов, таких как объекты?Есть ли проект, который на самом деле использует эту (неправильную) функцию?Всякий раз, когда я вижу конструктор с одним аргументом в коде, который я проверяю или изменяю, я воспринимаю его как ошибку и делаю его явным.Пока что это работало хорошо, и никто не жаловался.
Спасибо.
РЕДАКТИРОВАТЬ: Позвольте мне процитировать Алекса Степанова, создателя STL:
Откройте вашу книгу C ++и читайте про явное ключевое слово!Также попросите вашего соседского члена комитета C ++, чтобы окончательно отменить неявные преобразования.Существует распространенное заблуждение, часто распространяемое людьми, которые должны лучше знать, что STL зависит от неявных преобразований.Не так!
Ссылка: A.Степанов.Примечания C ++
ВНОВЬ РЕДАКТИРОВАТЬ: Нет, не спор, плз.Мне просто любопытно, использует ли кто-то неявные преобразования в своей работе.Я никогда не видел ни одного проекта, который позволял бы неявное преобразование для объектов.Я долго думал и не мог придумать ни одного гипотетического сценария, где неявное преобразование не стало бы минным полем.Я имею в виду преобразования с одним аргументом в C ++, а не преобразования типа float-> double или аналогичные, унаследованные от C.