【发布时间】:2021-01-06 16:38:06
【问题描述】:
我正在尝试在 Xcode 12.0 Mac OS 项目中使用 std::optional。我收到错误: 命名空间“std”中没有名为“可选”的模板
#include <optional>
std::optional<int> o;
我的设置是(我的项目需要 libc++):
【问题讨论】:
-
这很奇怪;我没有安装 Xcode 12,但我有适用于 Catalina 的苹果命令行工具(Apple clang 版本 11.0.3 (clang-1103.0.32.62)),并且您的代码编译时没有错误。
-
clang++ -std=c++17 -c so.cpp -
在 Xcode11 中添加了
<optional>标头。见release notes -
您是否查看过构建日志——特别是传递给编译器的命令?我知道您的屏幕截图显示您选择了 C++17;你能验证它是否被传递给编译器吗?另外,您是否从上面尝试过我的命令行?
-
@MarshallClow 感谢您的意见。我正在从模板项目构建一个插件,经过更仔细的检查后,我注意到并删除了“其他 C++ 标志”下的“-std=gnu++11”。
标签: c++ xcode c++17 libc++ stdoptional