我试图在我的NDK应用程序中使用std::shared_ptr <uint8_t []>
,但是编译器抛出以下错误。
错误:没有匹配的构造函数来初始化'
std::shared_ptr<uint8_t []>
'
std::shared_ptr<uint8_t[]> x_data(new uint8_t[bytes_to_send]);
我的NDK版本是r19c,CMake如下图
cmake {
version "3.10.2"
cppFlags "-std=c++17 -stdlib=libc++ -frtti -fexceptions"
...
}
答案 0 :(得分:1)
根据libc ++ Feature Test Macro Support page,__cpp_lib_shared_ptr_arrays
功能当前未实现。
可能与this task尚未启动而引起的this page有关。
同时,替代方法可能是显式指定数组删除器:
std::shared_ptr<uint8_t> x_data(new uint8_t[bytes_to_send], std::default_delete<uint8_t[]>());
(如文档here所示)