我正在调查为什么这段代码在我的PC上编译通过,但在我们工具链的GCC v5.4上无法编译,尽管传递了-std=c++14 -Wpedantic -pedantic-errors
:
#include <array>
#include <vector>
#include <tuple>
typedef std::tuple<const char *, const char *, bool> StrStrBool;
const std::vector<StrStrBool> cApIDValidTestValues {
{
{"str1", "str2", true },
{ "str3", "str4", false }
}
};
错误信息如下:
这段代码是符合C++14标准的(解释),因此根据GCC的标准支持页面——该页面显示从GCC v5开始完全支持C++14——我期望GCC v5.4能够编译它。
但是有人在网上告诉我,看起来这个GCC版本的编译器支持C++14,但随附的libstdc++不符合C++14标准。
我的相关问题是:
- 提供符合C++14标准的libstdc++的最早GCC版本是什么?我如何找到其他标准的信息?
- 为什么GCC会宣传其具有某个版本的C++14支持,但随附的libstdc++却没有?
- 这是否表明gcc编译器可以与其他stdlib实现一起使用?