06.02.2008, 23:04. Просмотров 1270. Ответов 0
Речь идет о методах std::string...
Вот цитата из Страуструпа:
'Преобразование в С-строку может быть обеспечено оператором operator const char*(), а не c_str(). Это обеспечило бы удобство неявного преобразования, но ценой всякого рода сюрпризов в тех случаях, когда такого преобразования не ожидалось.'
Угу, понятно - неявные преобразования на то и неявные, чтобы иногда происходить неожиданно и неявно

Из-за чего с ними нужно проявлять внимательность, это понятно. В std::string не включен оператор неявного пеобразования в const char*, вместо этого - const char* c_str() const;
Внимание, вопрос!
Какой хороший (простой и очевидный) пример показал бы глубину грехопадения тех, кто склонен считать, что std::string::operator const char*() - это хорошо