首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在Apple 7.3.0上使用std::tuple的“使用”声明

无法在Apple 7.3.0上使用std::tuple的“使用”声明
EN

Stack Overflow用户
提问于 2018-11-26 22:55:36
回答 1查看 1.2K关注 0票数 4

我试图在我的程序中使用tuple,由于某些原因,我无法用using声明简化调用。例如:

代码语言:javascript
运行
复制
#include <tuple>

using std::tuple;

...

这将在试图编译它时引发错误:

代码语言:javascript
运行
复制
error: no member named 'tuple' in namespace 'std'

我可以将using声明用于其他事情(如std::stringstd::get等)。只是很好。我想我已经把它缩小到编译器问题上了,但是我无法控制我要使用的编译器(大学服务器),而且我在网上找不到任何显示对这个头或任何东西缺乏支持的东西。以下是我的编译器信息:

代码语言:javascript
运行
复制
$ 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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-26 23:23:44

因为包含没有给出预处理器错误,所以可能存在元组头,而且这不是一个混乱/过时的C++标准库安装的情况。

但是,对于tuple之前的所有C++标准,std中没有定义的all都是预期的。

有了标准的安装并且没有额外的标志,Clang的版本应该使用C++14,但是这似乎是由维护该系统的人或某个包维护人员修改的。

要确保您正在使用最新的C++语言标准,请将-std=c++17添加到编译器调用中,如果C++17由于某些原因(例如,与较旧的编译器安装的兼容性)而太新,则至少添加C++17。特别是,如果您正在为某一大学类编写代码,您可能想要求澄清哪些C++标准是可以接受的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53490355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档