Vlad писал(а):
Конструктора от int'а у std::string нет (и это правильно). А вот operator = для символа есть. И вот это дизайнерское решение достаточно спорно, учитывая то, что к символу может быть неявно приведено много чего (в том числе и enum).
Вот вот. И этот спор такого вида далеко не единственный. Потому что одни хотят более строго языка, чтобы не колупаться в поисках ошибок во время выполнения (в основном из-за опечаток, которые мог бы поймать компилятор буди чуть другое дизайнерское решение в библиотеке или языке), а другие говорят что мы типа крутые программисты, глупых ошибок не допускаем и пусть все так и останется, да не нарушится наша свобода. А в итоге народ клепает подобные вещи
http://www.oopweb.com/CPP/Documents/CPPRules/, призывая писать добровольно соблюдая и контролируя самостоятельно набор правил, ограничивающих даже стандарт (видел и такую разработку, ссылку щас не помню) - и суля за это большую читабельность программ и меньшую вероятность ошибок.
А нафиг мне тогда Си++? Без шаблонов как-нибудь проживу, без STL тоже. А вот наживать геморрой в поисках ошибок из-за опечаток или напрягать мозг, следуя каким-то правилам - лучше я на Обероне напишу, который такие ограничения явно вводит и сам проверяет.