gpt4 book ai didi

c++ - Eclipse CDT 无法解析 std:array,std::vector 工作正常

转载 作者:行者123 更新时间:2023-11-30 05:08:40 24 4
gpt4 key购买 nike

我面临很多red crossesSymbol 'array' could not be resolved ,代码构建良好。

#include <math.h>
#include <array>
#include <sstream>
#include <string>

static std::string printArray(std::array<double, 3> data) {
std::ostringstream strs;
strs << "( " << data[0] << " " << data[1] << " " << data[2] << " )";
return strs.str();
}

static std::string printVector(std::vector<double> data) {
std::ostringstream strs;
strs << "( " ;
for (const auto & value : data )
strs << value << " ";
strs << " )";
return strs.str();
}

使用 -std=c++11 激活 c++11 功能在 C/C++ General -> Preposcessor Include Path, Macros etc. -> Porvides -> CDT GCC Built-in Compiler Settings 下标记如所述herehere .

我的问题没有重复,因为它适用于 std::vector和其他 c++11 功能得到正确处理。

header ( #include <array> ) 可以通过按 F3 来解析。

我正在使用 Eclipse CDT 版本:Neon.3 Release (4.6.3)。

最佳答案

我的症状与 OP 报告的完全相同:

  • 我之前应用了“-std=c++11”修复程序来使现代 C++ 的东西(如“unique_ptr”语法)起作用。
  • std::vector 和其他 std 模板的东西被无误地解析。
  • 我有#include <array> F3 成功定位到数组头文件。

我尝试了 schorsch312 提供的解决方案,它有效除了提供的步骤与我的 Eclipse 的 Neon 版本(OP 使用的相同版本)不完全一致。因此,我不得不稍微调整说明。这是对我有用的:

  1. 选择项目 -> 属性 -> C/C++ 常规 -> C/C++ 路径和符号 -> 符号
  2. 在该页面的“语言”下,选择“GNU C++”
  3. 添加...
    • 姓名:__cplusplus
    • 值:201103L
  4. 检查:添加到所有配置
  5. 申请/确定。

选择项目 -> C/C+ 索引 -> 重建——如果该操作没有自动触发。

现在,eclipse 可以正确解析对数组的引用。请注意,此解决方案假定您之前已经解决了使 c++11 语法正常工作的一般问题。

关于c++ - Eclipse CDT 无法解析 std:array,std::vector 工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46704910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com