我试图在我的程序中使用tuple
,由于某些原因,我无法用using
声明简化调用。例如:
#include <tuple>
using std::tuple;
...
这将在试图编译它时引发错误:
error: no member named 'tuple' in namespace 'std'
我可以将using
声明用于其他事情(如std::string
、std::get
等)。只是很好。我想我已经把它缩小到编译器问题上了,但是我无法控制我要使用的编译器(大学服务器),而且我在网上找不到任何显示对这个头或任何东西缺乏支持的东西。以下是我的编译器信息:
$ clang++ -v
Apple LLVM version 7.3.0 (clang-703.0.31)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
有什么想法吗?下面是它在其他地方工作的一个例子:http://cpp.sh/5bofm
发布于 2018-11-26 23:23:44
因为包含没有给出预处理器错误,所以可能存在元组头,而且这不是一个混乱/过时的C++标准库安装的情况。
但是,对于tuple
之前的所有C++标准,std
中没有定义的all都是预期的。
有了标准的安装并且没有额外的标志,Clang的版本应该使用C++14,但是这似乎是由维护该系统的人或某个包维护人员修改的。
要确保您正在使用最新的C++语言标准,请将-std=c++17
添加到编译器调用中,如果C++17由于某些原因(例如,与较旧的编译器安装的兼容性)而太新,则至少添加C++17。特别是,如果您正在为某一大学类编写代码,您可能想要求澄清哪些C++标准是可以接受的。
https://stackoverflow.com/questions/53490355
复制相似问题