Всякий раз, когда мне нужно добавить динамически выделяемый объект в вектор, я делаю это следующим образом:
class Foo { ... };
vector<Foo*> v;
v.push_back(new Foo);
// do stuff with Foo in v
// delete all Foo in v
Это просто сработало, и многие другие, похоже, делают то же самое.
Сегодня я изучил вектор :: push_back может вызвать исключение. Это означает, что приведенный выше код не безопасен в отношении исключений. :-( Итак, я придумал решение:
class Foo { ... };
vector<Foo*> v;
auto_ptr<Foo> p(new Foo);
v.push_back(p.get());
p.release();
// do stuff with Foo in v
// delete all Foo in v
Но проблема в том, что новый способ многословен, утомителен, и я вижу, что никто его не делает. (По крайней мере, не вокруг меня ...)
Я должен пойти по-новому?
Или я могу просто придерживаться старого способа?
( git submodule init
, за которым следует git submodule update
), и он работает некоторое время.
Я попытался клонировать это на новую машину, и теперь я получаю эта ошибка в подмодуле git init
:
No submodule mapping found in .gitmodules for path 'Classes/Support/Three20'
Этот путь - просто пустая папка в Xcode, которую я использую для размещения проектов из другого каталога. Он не является частью файла .gitmodules
, поэтому я не понимаю, откуда он берет этот путь.
Есть идеи?