Обоснование интерфейсов PCL `shared_ptr`

Многие интерфейсы PCL принимают только shared_ptr<T> аргументы (например, boost::shared_ptr< PointCloud>). [В сторону: это оно boost::shared_ptr и не std::shared_ptr это еще одна проблема, но она должна быть исправлена ​​в следующих версиях.]

Обычно такие интерфейсы являются допустимым вариантом для многопоточных приложений, где необходимо управлять временем жизни объектов и предотвращать выход объектов общих ссылок из области видимости. Тем не менее, PCL не обязательно используется в таком контексте, и этот API заставляет создавать много объектов в куче только для поддержки этого стиля API (и всегда проверять наличие nullptr).

Есть ли другое объяснение, которое я пропускаю, почему это так?
Для локальных объектов мне теперь нужно создать shared_ptr с обычаем NOP Удалить объект, чтобы просто передать его алгоритмам.

(Если есть лучший форум, чтобы задать этот вопрос, пожалуйста, lmk.)

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]