0

我花了一天的大部分时间用 statet 插件设置 eclipse 来构建 Rcpp 包。很多错误,然后重试。我想我现在差不多了。

问题是,在我前段时间编写的一个包中(使用石刀和球杆进行开发)我使用了 std::unique_ptr ,eclipse 中的代码检查器没有解决这个问题。我在配置中已经提供了以下包含目录:

C:/Rtools/mingw_64/lib/gcc/x86_64-w64-mingw32/4.9.3/include

C:/Rtools/mingw_64/lib/gcc/x86_64-w64-mingw32/4.9.3/include-fixed

C:/Rtools/mingw_64/x86_64-w64-mingw32/include

C:/Rtools/mingw_64/x86_64-w64-mingw32/include/c++

C:/Rtools/mingw_64/x86_64-w64-mingw32/include/c++/backward

C:/Rtools/mingw_64/x86_64-w64-mingw32/include/c++/x86_64-w64-mingw32

我可以在 C:/Rtools/mingw_64/x86_64-w64-mingw32/include 中看到 stdlib.h 所以,我认为一切都会好的。

4

1 回答 1

0

std::unique_ptr 的标头在从 C++ 包含文件夹引用的 <bits/unique_ptr.h> 中提供,该文件夹可能因安装而异。但是,标准库对 std::unique_ptr 的引用表明使用了 #include memory (inside<> 括号)。果然在C++的includes文件夹中有一个名为memory(没有扩展名)的文件,只要满足#if __cplusplus >= 201103L条件,这个文件又包含<bits/unique_ptr.h>。

所以包含配置 C:/Rtools/mingw_64/x86_64-w64-mingw32/include/c++ 应该足够了。但是,如果未指定在其他地方使用 C++11,则 eclipse 代码检查器将无法识别 std::unique_ptr。在以下帖子中回答了这个相关问题:

如何在 Eclipse CDT 中启用 C++11/C++0x 支持?

于 2020-08-27T14:24:43.287 回答