【问题标题】:std::optional does not compilestd::optional 不编译
【发布时间】:2021-05-16 17:43:33
【问题描述】:

此代码不能使用命令 g++ -std=c++17 main.cpp 编译

#include <iostream>
#include <experimental/optional>

int main()
{
    std::optional<int> x;
    std::cout << "Hello World";
    return 0;
}

错误如下:

  1. 错误:“可选”不是“标准”的成员
  2. 错误:“int”之前的预期主表达式

有没有办法编译这段代码?

【问题讨论】:

    标签: c++ std stdoptional


    【解决方案1】:

    &lt;experimental/optional&gt; 标头没有定义std::optional,而是定义std::experimental::optional。要获得 std::optional,它是 C++17 标准的(非实验性)部分,您应该只需要 #include &lt;optional&gt;

    Try on godbolt.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-12
      • 2015-03-18
      • 2021-02-06
      • 2015-07-23
      • 1970-01-01
      • 2017-05-14
      • 2015-12-01
      • 1970-01-01
      相关资源
      最近更新 更多