【发布时间】:2015-10-15 20:10:54
【问题描述】:
我正在使用两个库:
- 第一个使用 -std=c++11
- 第二个使用 -std=c++1y
现在,我在第一个库中创建了一个测试用例(因为这里更简单),其中我使用了两个库的头文件。当我编译使用
制作
对于带有
的行decltype (auto) ...
我收到以下两条错误消息:
错误:“auto”之前的预期主表达式
错误:'decltype' 之前的预期 unqualified-id
这些行来自第二个库的一些 .cpp 文件,当我编译第二个库的示例(在其中定义)时,这些错误不会出现。所以我认为解决方案是将第一个库的 -std=c++11 更改为 -std=c++1y 因为这是两个库之间标志的唯一区别。
假设我的想法可能是正确的……很明显,在第一个库中,源目录中有很多 CMake 文件,我有点害怕在一切都不起作用之前更改配置。而且我没有安装库,有人为我安装了它。通常我在哪里可以找到 CXX_FLAGS 变量?在添加 -std=c++14 之后,我应该重新安装库还是在编译测试用例的地方“制作”就足够了?
我知道可能缺少许多信息,但这是我第一次使用复杂的库处理 CMake。
【问题讨论】:
-
decltype(auto) 是 C++14 的一部分,而不是 C++11。因此,在使用 -std=c++11 进行编译时,您会得到正确的错误。
标签: c++ c++11 cmake makefile c++14