Eclipse CDT代码分析认为size_t是模糊的

时间:2013-07-01 22:50:01

标签: eclipse-cdt

毕竟,它确实在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
}

STDDEF.H:

typedef __SIZE_TYPE__ size_t;

因此,当文件执行using namespace std时,Eclipse CDT代码分析会混淆并表示符号不明确。我不知道gcc是如何解决这个问题的,但是对于日食代码分析有什么建议吗?

2 个答案:

答案 0 :(得分:4)

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

项目 - >属性 - > C / C ++一般 - >代码分析

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

答案 1 :(得分:1)

有效的C代码也是有效的C ++代码,但实际上并非完全如此。你遇到的情况并非如此。对于这种情况的不同,这个问题有一个非常好的答案:Repeated typedefs - invalid in C but valid in C++?值得注意的是,C11将解决这种不兼容问题。

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