3

当使用带有MinGW(版本:4.8.1)的Eclipse编译以下代码片段时,它可以通过但Eclipse仍然报告:“此行的多个标记 - 无法解析类型'alignas'”

template<typename X> void set_aside(std::vector<X> vx) {
    constexpr int max_buf = 1024;
    alignas(X) X buffer[max_buf];

    int max = min(vx.size(), max_buf / sizeof(X));
    std::uninitialized_copy(vx.begin(), vx.begin() + max, buffer);
}

这个问题发生了什么,虽然代码片段通过了编译,但 Eclipse 标记错误。有人遇到过这个问题吗?请帮我解决这个问题,非常感谢!

4

1 回答 1

2

许多 IDE 使用与其后端编译器不同的前端语法检查器。Eclipse Kepler(2013 年 6 月发布)大部分是最新的 C++11 语法,尽管可能不完全支持对齐支持以及与类内初始化程序和默认构造函数的交互等某些内容(目前)。decltype(auto)类似地,如果后端编译器被调用std=C++1y但不会被前端语法检查器识别,则类似 C++14 的功能将起作用。

注意:这不是 Eclipse 独有的,Visual C++ Intellisense 有时也会在实际编译器后面运行(尤其是在 CTP 版本中),从而导致红色波浪线。

于 2013-09-23T11:08:38.463 回答