Цитата:
Сообщение от Crazy_kettle
Интересует меня другое. Я ведь всегда думал, что STL разрабатывалась/писалась так, чтобы обеспечивать максимальное быстродействие. Только вот зачем нужно создавать временный объект? (конечно, программистам MS виднее, но разработчики библиотеки, поставляемой с g++ 3.4.4, обошлись же без этого). И это, имхо, создание временного объекта может отнимать уйму времени (если этот объект очень большой). Не зря же объекты передаются по ссылке ?!
|
Да ну? А насколько я помню, STL разрабатывался как средство, позволяющее быстро разрабатывать программные продукты, не тратя времени на написание своих контейнеров, списков и т.п. Там же, умный дядька Бьерн Страуструп писал, что, увы это имеет свои минусы, так как в некоторых случаях снижает быстродействие за счет универсализации.
Да и что значит "я потеряю в скорости"? Все относительно... Если у тебя 100 объектов, то ты можешь начихать на это, поскольку при современных скоростях это тьфу. К тому же при написании больших проектов, далеко не все упирается в скорость, но также еще и в возможность поддежки и расширения. Таким образом, написак конструктор копирования и оператор присваивания для класса 1 раз ты можешь забыть об этолм и без оглядки на всякие там особенности писать новый код с использованием объектов этого класса. На то он и C++ и ООП в частности - никто снаружи не должен заботится о выделеии/перевыделении/очистке памяти под твою внутреннюю строку.
А почему бы не использовать std::string вместо этой убогой структуры?