Отличаются ли эти инициализации общего общего указателя в PCL? - PullRequest
0 голосов
/ 21 марта 2019

Я уже некоторое время использую PCL и видел несколько способов инициализации boost::shared_ptr.Вот примеры, которые я рассматриваю:

  • pointCloudType::Ptr cloud (new pointCloudType);
  • pointCloudType::Ptr cloud = pointCloudType::Ptr(new pointCloudType);
  • pointCloudType::Ptr cloud = pointCloudType::Ptr(new pointCloudType());

Есть ликакая разница между ними и / или преимущество использования одного над другими?

1 Ответ

0 голосов
/ 22 марта 2019

Благодаря @taketwo я получил этот ответ:

Примеры 2 и 3 идентичны. Пример 1 должен быть предпочтительным, поскольку он закорочен и не требует вызова конструктора копирования.

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

cloud.reset(new pointCloudType);
...