LINUX.ORG.RU

Ответ на: комментарий от elverion

так проще указатели хранить

dt1 ★★
() автор топика

То же самое, что и вектор из указателей, только само удаляет все объекты. Бонус: можно хранить полиморфные объекты, хотя и без этого удобно.

const86 ★★★★★
()
Ответ на: комментарий от const86

мне как раз и нравится, что оно само все удалит, но ведь пользоваться не удобно
то есть цикл по коллекции должен быть примерно такой:

for (auto it = collection.begin(); it != collection.end(); ++it)
{
    Object* o = it->get();
    ...
}

а если использовать просто коллекцию из указателей, то достаточно:

for (Object* o: collection)
{
    ...
}

dt1 ★★
() автор топика
Ответ на: комментарий от dt1

Object* o = it->get();

Это зачем? operator-> применяется до тех пор пока не приведёт к типу, для которого он не перегружен.

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

Да, с auto всё ещё проще.

Ну и в любом случае, заплатить за некоторое удобство необходимостью напечатать несколько лишних букв - обычно дело для плюсов.

const86 ★★★★★
()
Ответ на: комментарий от Begemoth

> Это зачем? operator-> применяется до тех пор пока не приведёт к типу, для которого он не перегружен.

ну это кому как нравится, для наглядности может быть полезно

dt1 ★★
() автор топика
Ответ на: комментарий от const86

> Поправочка, подсказанная gcc-4.6:

for (auto &o: collection)

вот, спасибо, то, что надо

хотя, не лучше ли использовать boost::ptr_vector ...

dt1 ★★
() автор топика
Ответ на: комментарий от dt1

ну это кому как нравится, для наглядности может быть полезно

Какую наглядноть даёт получение «сырого» указателя?

Begemoth ★★★★★
()
Ответ на: комментарий от TERRANZ

> ну, собственно, большую часть буста запилили в c++0x

ptr_vector не запилили к сожалению

dt1 ★★
() автор топика
Ответ на: комментарий от dt1

разыменовывать проще

чем raw_ptr->a проще чем smart_ptr->a?

Begemoth ★★★★★
()
Ответ на: комментарий от dt1

Или ты про близость исходного кода генерируемому компилятором? Тогда не стоит использовать С++, переносимый ассемблер в этом плане гораздо лучше.

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

я имею в виду *raw_ptr

а еще может понадобиться передавать указатель в несколько функций

dt1 ★★
() автор топика
Ответ на: комментарий от dt1

я имею в виду *raw_ptr

так ведь *smart_ptr

а еще может понадобиться передавать указатель в несколько функций

так передавать надо умный указатель

Begemoth ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.