gpt4 book ai didi

c++ - 构造错误; VS2017 C++ 编译器回归?

转载 作者:可可西里 更新时间:2023-11-01 16:48:31 26 4
gpt4 key购买 nike

刚刚安装了 VS2017,它声称自 2015 年以来就拥有卓越的 C++14 支持(这是基本的)。在我的一个使用 constexpr 的项目上试一试,并注意到似乎有一些回归。

这段代码:

struct s
{
size_t i;
constexpr s(nullptr_t) noexcept : i(0) {}
};
static_assert(s(nullptr).i == 0, "!!");

在 VS2015 和 Clang 上编译没有问题,但在 VS2017 中出现新错误:

error C2131: expression did not evaluate to a constant
note: failure was caused by unevaluable pointer value
note: while evaluating 's::s(&s{(null)})'

这段代码看起来不错吧? constexpr 是否意味着 nullptr 有问题?
我很惊讶这个基本的回归会出现,我怀疑我的代码一定有问题......

最佳答案

constexpr constructor(std::nullptr_t) causes "error C2131: expression did not evaluate to a constant"

这个问题是 reported作为 Visual Studio 2017 版本 15.1 中的错误。
还有一个变体 issue OP(?)早些时候报告过。

此问题已修复:Visual Studio 2017 版本 15.6 预览版 1

关于c++ - 构造错误; VS2017 C++ 编译器回归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42917099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com