Цитата:
alexey_ma:
2 Drakosha.
vec.push_back(s) не создает стековый обьект. push_back в параметре получает константный референс
|
Согласен частично. Т.е. во время передач в функцию временый обьект не создаётся. Но неизвестно какая там имплементация, всё таки где-то он копируется

. Кстати, в gcc не копируется :D
Цитата:
Crazy_kettle:
Да похоже программисты Microsoft что-то с STL перемудрили и действительно где-то у них создаётся временный объект. Хотя это мне кажется странным, т.к. для больших объектов из-за этого скорость должна сильно упасть!!!!!!
|
Цитата:
Crazy_kettle:
100% согласен
Дело в том, что писать их не хотелось, ибо каждая такая операция медленная и причём НЕнужная (Имхо).
З.Ы. Как я понял, изящней последнего решения (то, кот. с наследованием) в моём первом после ничего не придумано. Его я и реализовал.
|
Во первых, copy constructor и operator= всегда стоит написать или запретить. (Пользоваться дефолтным === написать)
Бо вторых, по моему правильное решение написать их все таки так как твоэ решени может упасть на каком-то другом сценарии - все так там возможна двойная деаллокация.