pca.setIndices(std::make_shared<const pcl::Indices>(nn_indices));报错const缺少显式类型
时间: 2024-10-10 18:15:43 浏览: 66
这段代码看起来是在PCL(Point Cloud Library)中使用PCA(Principal Component Analysis)并试图设置索引。`std::make_shared<const pcl::Indices>(nn_indices)`的作用是创建一个常量共享指针指向`pcl::Indices`类型的nn_indices变量。
报错说`const`缺少显式类型,可能是由于编译器无法自动推断出`const`应该应用在哪一部分。在C++11及以后的版本中,如果你明确地想要创建一个`const`指针,你应该在`make_shared`函数中指定,像这样:
```cpp
pca.setIndices(std::make_shared<const pcl::Indices const>(nn_indices));
```
或者更简洁一点:
```cpp
pca.setIndices(std::make_shared<pcl::Indices>(nn_indices)->lock());
```
这里我们先创建了一个普通的`Indices`实例然后通过`.lock()`转换成了一个`const`指针。这是因为`Indices`通常是非`const`的,你需要一个`const`指针指向`const Indices`。
阅读全文