Простая работа с памятью
Всем привет. Я программирую на Action Script 3 это язык потипу Java. В нем выделением и освобождеием памяти занимается язык по принципу сборщика мусора. Мне понадобилось написать большой проект на Си++, причем стабильность работы и скорость написания кода важнее, чем производительность работы приложения. У меня вопрос, какие существуют решения для того, чтобы так плотно не задумываться о ручном выделении и освобождении памяти. У меня есть несколько вариантов как упростить себе жизнь, но они все являются костылями. Интересуют любые варианты. Заранее спасибо.
+ для массивов контейнеры (c std::auto_ptr нельзя использовать)
+ есть boost::shared_ptr
По крайней мере это мое ИМХО.
Если юзать только boost::shared_ptr, то о памяти можно не задумыватся вообще.
Спасибо. Библиотека Boost это то, что нужно. Буду использовать boost::Smart Pointers и std::string вместо Си строк. Еще я слышал, что в существует managed code, в котором такой проблемы не существует. Я пишу плагин для 3DS Max, там расширение функций происходит путем наследования своих классов от стандартных максовских. Получится ли в этом случае использовать managed code?
Цитата: Яски
Еще я слышал, что в существует managed code, в котором такой проблемы не существует. Я пишу плагин для 3DS Max, там расширение функций происходит путем наследования своих классов от стандартных максовских. Получится ли в этом случае использовать managed code?
сам по себе управляемый ЦПП это костыль, нужный что бы связать управляемый код с неупаравляемым. ИМХО браться за него не стоит.
ЗЫ: если макс реализован в виде COM сервера и плагины к нему в том же ключе пишутся, то созданием/удалением объектов занимается ATL, и руками делать ничего не надо.
С максом идет скд, в котором есть примеры плагинов. Там не используется COM, все написано на чистом Си++. Так что не думаю, что возможна работа через COM. Хорошо, значит придется придерживаться строгих правил при написании программы: по возможности использовать память на стеке, для памяти не на стеке использовать умные указатели.
эм... какбэ и COM можно реализовать С++... это так к сведению
Цитата: Яски
Я программирую на Action Script 3 это язык потипу Java.
Кстати ни разу не по типу Java. =)
Цитата: aks
Кстати ни разу не по типу Java. =)
Ну да, к JavaScript поближе.
Не хочется разбираться в COM, мне кажется там гемороя еще больше, чем просто в Си. Мне хотелось бы упростить разработку, с как можно меньшим кол-вом костылей. В Си++ их достаточно. Говорят на Си# очень классно писать, если бы была у меня такая возможность.