我正在使用LAPACK库来创建一个使用C++的R包。我正在使用unique_ptr来定义数组,例如:
在经过搜索后,我发现不推荐将unique_ptr作为指针参数传递给函数。然而,我正在使用的库函数需要一个指针作为它们的参数。我不能在将指针发送到函数之前释放它,因为库函数需要更新指针。有没有有效的方法来处理这个问题?
unique_ptr<double[]> my_arr(new double[arr_length]);
我随后将这个unique_ptr传递给库函数(一种FORTRAN函数),该函数接受double数组的指针并将在函数中更新此数组。
F77_CALL(daxpy) (&num_feat_, &beta, tmp, &inc_one, my_arr.get(), &inc_one);
在经过搜索后,我发现不推荐将unique_ptr作为指针参数传递给函数。然而,我正在使用的库函数需要一个指针作为它们的参数。我不能在将指针发送到函数之前释放它,因为库函数需要更新指针。有没有有效的方法来处理这个问题?
.get()
是可以接受的。请注意DAXPY不会更新指针本身;它会更新所指向的数据。 - Jonathan Dursi