我对 std::optional
感到困惑。根据文档,它不应该有一个 constexpr
赋值运算符。
然而,在 gcc-8.1 中,当我尝试这个片段时,它可以编译并正常工作:
constexpr std::optional<int> foo() {
std::optional<int> bar = 3;
bar = 1337;
return bar;
}
constexpr auto z = foo();
Is there something I am missing?
constexpr auto z = foo()
也能编译吗? - Evgconstexpr
。(并且预计会追溯到C++17。) - cpplearner