lapulya
Молодой специалист
Offline
|
|
« : 08-09-2004 11:39 » |
|
нарвался тут на такой код
typedef std::string String; void f(String) { ... }
void main() { f("bubu"); }
не понимаю, почему при вызове f создается ОДИН объект типа String, насколько я понимаю должно создаваться два...
один когда из "bubu" создается String, поскольку сигнатура функции требует в параметре тип String
второй когда происходит передача параметра в функцию по значению
может какая оптимизация или это предусмотрено стандартом
|
|
|
Записан
|
С уважением Lapulya
|
|
|
Serega
Гость
|
|
« Ответ #1 : 08-09-2004 12:41 » |
|
Если бы ты передавал обьект типа String, тогда была бы создана копия, и было бы два обьекта String А так есть строка char* и обьект String
|
|
|
Записан
|
|
|
|
lapulya
Молодой специалист
Offline
|
|
« Ответ #2 : 08-09-2004 12:50 » |
|
не понял я твой ответ, но хочу уточнить ПОЧЕМУ не создается объект типа String ДО входа в функцию, веть сигнатура функции такова что хочет на входе объект типа String а не const char *, меня интересует именно почему так происходит, а не ответ на то происходит или нет (я и сам в дебаге прекрасно вижу что объект НЕ создается)
|
|
|
Записан
|
С уважением Lapulya
|
|
|
npak
|
|
« Ответ #3 : 08-09-2004 13:33 » |
|
lapulya, см. стандарт, раздел 5.2.2, 4-й абзац During the intitialization of a parameter, an implementation may avoid the construction of extra temporaries by combining the conversion on the associated argument and/or the construction of temporaies with the initialization of the parameter Подходит цитата?
|
|
|
Записан
|
|
|
|
lapulya
Молодой специалист
Offline
|
|
« Ответ #4 : 08-09-2004 14:40 » |
|
спасибо npak, именно ее я и жаждал...
|
|
|
Записан
|
С уважением Lapulya
|
|
|
Антон (LogRus)
|
|
« Ответ #5 : 08-09-2004 14:52 » |
|
дадут мне в морду за такой вопрос. Но все же дате линк на стандарт. :?
|
|
|
Записан
|
Странно всё это....
|
|
|
npak
|
|
« Ответ #6 : 08-09-2004 16:14 » |
|
LogRus, ко мне стандарт добирался тайными тропами Вроде как он лежит на некоторых библиотеках, но линков у меня нет
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #7 : 08-09-2004 16:56 » |
|
npak, плохо! ладно будем искать.
|
|
|
Записан
|
Странно всё это....
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #8 : 08-09-2004 17:53 » |
|
LogRus, может это подойдёт ? ISO Draft Standart Working Papers (December 1996) [FTP # 1] [FTP # 2] - Последняя рабочая версия стандарта. Несколько отличается от утвержденной версии, но все равно весьма полезный документ. В отличии от утвержденного стандарта рапространяется бесплатно
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #9 : 08-09-2004 18:00 » |
|
И ещё вот сюда можно сходить.
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
Антон (LogRus)
|
|
« Ответ #10 : 08-09-2004 18:02 » |
|
чего то работают ссылки
|
|
|
Записан
|
Странно всё это....
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #11 : 08-09-2004 18:06 » |
|
LogRus, сорри, я не проверял
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #13 : 09-09-2004 06:30 » |
|
LogRus, мдас, бабло непонятно за что хотят
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
npak
|
|
« Ответ #14 : 09-09-2004 10:41 » |
|
разработка стандартов -- весьма хлопотное и дорогое дело. 1. В рабочем комитете люди за деньги работают, 2. Нужны деньги на орг. расходы -- проведение встреч рабочей группы, подготовки материалов, прочие административные хлопоты 3. Оплата публикаций, издания стандарта
Ну и вообще денег много не бывает. Хотя бы за тем, чтобы 4. оплачивать недвижимость в Швейцарии, где располагается штаб-квартира ISO
На свете не так много организаций, которые делают хорошо выверенные стандарты и раздают их за так.
В первую очередь, IETF со своими RFC. Есть конторы в Европе, которые полностью финансируются Евросоюзом и могут себе позволить раздавать Интеллектуальную Собственность бесплатно. Есть W3C, финансируемый Microsoft. Он тоже раздаёт свои стандарты и рекомендации за так.
|
|
|
Записан
|
|
|
|
|