【问题标题】:Using std::variant in g++在 g++ 中使用 std::variant
【发布时间】:2016-12-22 13:05:42
【问题描述】:

如何在g++ 中使用std::variant?为什么std::experimental 中没有std::variant(尽管std::optional 是)?我需要什么版本的g++?我不想使用boost,我只想使用标准库。

编辑:似乎只有g++ 7 支持std::variant。那么我的问题是:它什么时候发布,我在使用它的实验版本时会遇到什么问题?

【问题讨论】:

  • 您应该使用最新版本的g++
  • @BasileStarynkevitch 版本号是多少?我怎样才能得到它?
  • 在终端中运行 g++ -vg++ --version
  • @BasileStarynkevitch 我知道我的版本号。我有g++-6.2g++-5.4。不幸的是,他们没有variant

标签: c++ stl g++ variant


【解决方案1】:

This page 说,GCC 7 有std::variant

【讨论】:

  • 是的,我明白了。如何在 Ubuntu 上安装它?或者我发现,GCC 7 还没有发布,什么时候发布?
  • @AleksandrTukallo:只需下载、配置即可;制作;进行安装。完美运行!
  • @Klaus 谢谢!但是在发布之前使用它可能会遇到什么问题呢?没事吧?
  • @AleksandrTukallo:它处于第 3 阶段,这意味着有许多未解决的错误应该在接下来的几天内修复。也许你会遇到其中之一。但我相信你甚至可以在旧 gcc 版本的未修复错误中运行得更快,就像在当前预发布分支的新版本中一样。简短的回答:给它一个机会!您可以拥有任意多个并行版本。如果它不起作用:写一个错误报告。它会帮助别人!
【解决方案2】:

GCC 有一个info page,您可以在其中检查哪个语言功能是在哪个版本中实现的。 variant 似乎还没有实现。

【讨论】:

  • 根据表std::optional也没有实现,虽然我可以在我的g++ 5.4中使用它:experimental optional
  • @user2393256 链接列出标准库状态还是仅列出核心语言功能?
猜你喜欢
  • 2019-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 2019-10-11
  • 2020-06-26
  • 1970-01-01
相关资源
最近更新 更多