А>Подскажите, пожалуйста, можно ли обойти ограничение std::auto_ptr<>, согласно которому его нельзя класть в контейнер? А>Мне нужно хранить в контейнере указатели, полученные с помощью new и не хотелось бы вручную вызывать delete.
Хранить auto_ptr нельзя, т.к. у него разрушающее копирование. Если копирования не будет (некоторые реализации std::vector с вызовом reserve или std::list), то и проблем не будет.
Здравствуйте, CreatorCray, Вы писали:
CC>Это решает только одну проблему. Громозкость и тормознутость буста увы не исправить... Хотя есть в нем неплохие вещи..
shared_ptr — громоздкий и тормозной?!
Как сказать "вау" наоборот?
Здравствуйте, _uncle, Вы писали:
_>Пес его знает какие в ней еще баги зарыты — поддержка может оказаться весьма дорогой. Особенно в системах 24*365. Бывает и от STL отказываются
Я какраз пишу 24*365 системы. Вот с чем проблем небыло ниразу так это с boost'ом и stl'ем.
Что я не так делаю?
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, <Аноним>, Вы писали:
А>Что касается топика, то неужели все либо используют буст, либо сидят на своих велосипедах? А>Ведь задача, ИМХО, распространённая.
А boost это и есть набор велосипедов для распространенных задач.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, CreatorCray, Вы писали:
CC>Это решает только одну проблему. Громозкость и тормознутость буста увы не исправить... Хотя есть в нем неплохие вещи..
А в каком месте он тормозной?
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
K>>вторая, неофициальная — никто в нем нихрена не понимает, как и в c++... А>А попробывать изучить?!
учиться ????
на это нет время — надо кривой колотить код!
и отлаживать его.
Re[9]: Контейнер распределённых указателей
От:
Аноним
Дата:
24.08.07 18:54
Оценка:
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, _uncle, Вы писали:
_>>Пес его знает какие в ней еще баги зарыты — поддержка может оказаться весьма дорогой. Особенно в системах 24*365. Бывает и от STL отказываются WH>Я какраз пишу 24*365 системы. Вот с чем проблем небыло ниразу так это с boost'ом и stl'ем. WH>Что я не так делаю?
Значит не используете их в полной мере. Не бывает продуктов без багов.
>Значит не используете их в полной мере. Не бывает продуктов без багов.
не бывает вообще софта без багов. и что его — не использовать что ли?
в библиотеках Microsoft тоже прилично багов находили ,тем не менее многие используют MFC и ATL.
и даже в 24x7 серверных приложениях. чем положение boost хуже?
Здравствуйте, <Аноним>, Вы писали:
WH>>Я какраз пишу 24*365 системы. Вот с чем проблем небыло ниразу так это с boost'ом и stl'ем. WH>>Что я не так делаю?
А>Значит не используете их в полной мере.
А что по твоему в полной мере?
А>Не бывает продуктов без багов.
По этому я и пишу системы устойчивые к программным и аппаратным сбоям. Вроде даже получается.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Кодт, Вы писали:
CC>>Это решает только одну проблему. Громозкость и тормознутость буста увы не исправить... Хотя есть в нем неплохие вещи..
К>shared_ptr — громоздкий и тормозной?! К>Как сказать "вау" наоборот?
Здравствуйте, WolfHound, Вы писали:
CC>>Это решает только одну проблему. Громозкость и тормознутость буста увы не исправить... Хотя есть в нем неплохие вещи.. WH>А в каком месте он тормозной?
Ну положим тормознутых мест в бусте хватает. Например, сериализация. Спирит тоже не особо блещет.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, Kubroid, Вы писали:
K>учиться ???? K>на это нет время — надо кривой колотить код! K>и отлаживать его.
Вот во всех таких вот амбициозных заявах меня всегда смущает то, что люди которые смогли чему-то где-то выучиться учат людей, которые что-то где-то смогли сделать. Так бывает не всегда, но часто, так как с опытом люди начинают понимать, что вопросы типа "буст или не буст" не главные...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: Контейнер распределённых указателей
От:
Аноним
Дата:
26.08.07 12:42
Оценка:
Здравствуйте, Аноним, Вы писали:
А>boost::shared_ptr
Реализация такого простого smarta тривиальна. Только ради него юзать boost (если почему-то нет желания) не стоит. К тому же в boost он содержит дополнительный счетчик для совместного использования с boost::weak_ptr. Рассмотрите еще возможность внедерения счетчика в классы хранимых данных, что избавляет от дополнительных операций с динамической памятью.
Здравствуйте, Аноним, Вы писали:
А>>boost::shared_ptr А>Реализация такого простого smarta тривиальна. Только ради него юзать boost (если почему-то нет желания) не стоит. К тому же в boost он содержит дополнительный счетчик для совместного использования с boost::weak_ptr. Рассмотрите еще возможность внедерения счетчика в классы хранимых данных, что избавляет от дополнительных операций с динамической памятью.
Не так уж и тривиальна. Кстати, в Boost есть еще intrusive_ptr.
Sapienti sat!
Re[4]: Контейнер распределённых указателей
От:
Аноним
Дата:
26.08.07 13:17
Оценка:
Здравствуйте, Cyberax, Вы писали:
C>Не так уж и тривиальна. Кстати, в Boost есть еще intrusive_ptr.
Здравствуйте, Кодт, Вы писали:
CC>>Это решает только одну проблему. Громозкость и тормознутость буста увы не исправить... Хотя есть в нем неплохие вещи.. К>shared_ptr — громоздкий и тормозной?!
Я вообще то говорил про весь буст
Здравствуйте, Аноним, Вы писали:
А>Подскажите, пожалуйста, можно ли обойти ограничение std::auto_ptr<>, согласно которому его нельзя класть в контейнер? А>Мне нужно хранить в контейнере указатели, полученные с помощью new и не хотелось бы вручную вызывать delete.
если гора не идет к Магомеду, тогда Магомед пойдет к горе
а что если не указатель модифицировать а контейнер?
например( пишу навскидку)
template<class T>
class auto_ptr_vector
: public std::vector<T>
{
auto_ptr_vector();
~auto_ptr_vector();
{
for each( T t in *this)
{
delete t;
}
}
};
З.Ы. кстати в бусте такое тоже есть, но раз такое с бустом то самому это написать не так уж и сложно
Здравствуйте, Sergey, Вы писали:
S>Ну положим тормознутых мест в бусте хватает. Например, сериализация. Спирит тоже не особо блещет.
Те из-за пары тормознутых либ нельзя использовать другие либы?
boost не смотря на заявления некоторых товарищей ни разу не монолит.
И многими либами можно спокойно пользоваться не тоща за собой другие либы.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>boost не смотря на заявления некоторых товарищей ни разу не монолит. WH>И многими либами можно спокойно пользоваться не тоща за собой другие либы.
Ну пролема не в том, что boost монолтен, а в том, что нет удобной готовой инфраструктуры, для использования его "по частям"
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском