Обоснование интерфейсов PCL `shared_ptr` - PullRequest
0 голосов
/ 27 декабря 2018

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

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

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

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

...