5

毕竟,它确实在 stddef.h 和 c++config.h 中定义:

c++config.h:

namespace std
{
  typedef __SIZE_TYPE__     size_t;
  typedef __PTRDIFF_TYPE__  ptrdiff_t;

#ifdef __GXX_EXPERIMENTAL_CXX0X__
  typedef decltype(nullptr) nullptr_t;
#endif
}

标准定义.h:

typedef __SIZE_TYPE__ size_t;

因此,当文件出现时using namespace std,Eclipse CDT 代码分析会感到困惑,并说该符号不明确。我不知道 gcc 是如何解决这个问题的,但是有人对如何进行 eclipse 代码分析有任何建议吗?

4

2 回答 2

5

我通过完全禁用代码分析中的错误来解决这个问题。

项目 -> 属性 -> C/C++ 常规 -> 代码分析

取消选中“不明确的问题”

于 2013-07-01T23:38:26.620 回答
1

大多数情况下,但不完全是,有效的 C 代码也是有效的 C++ 代码。你遇到了一个不正确的案例。这个问题对这种情况下的区别有一个很好的答案:重复类型定义 - 在 C 中无效但在 C++ 中有效? 还值得注意的是,C11 将修复这种不兼容性。

结果,实际上,这种行为介于 CDT 代码分析中的缺陷和缺陷之间。CDT 应该知道代码是 C++ 并允许语法,但似乎它认为它是 C 并且不允许它。

于 2015-10-08T16:41:20.800 回答