Почему нет std::string::operator const char*()
От: Brother Россия  
Дата: 30.11.01 05:50
Оценка:
Речь идет о методах std::string...
Вот цитата из Страуструпа:
"Преобразование в С-строку может быть обеспечено оператором operator const char*(), а не c_str(). Это обеспечило бы удобство неявного преобразования, но ценой всякого рода сюрпризов в тех случаях, когда такого преобразования не ожидалось."
Угу, понятно — неявные преобразования на то и неявные, чтобы иногда происходить неожиданно и неявно :) Из-за чего с ними нужно проявлять внимательность, это понятно. В std::string не включен оператор неявного пеобразования в const char*, вместо этого — const char* c_str() const;
Внимание, вопрос!
Какой хороший (простой и очевидный) пример показал бы глубину грехопадения тех, кто склонен считать, что std::string::operator const char*() — это хорошо :)
С уважением,
Сергей
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.