gpt4 book ai didi

c++ - std::promise 其中 T 在 Visual Studio 2017 中必须是默认可构造的?

转载 作者:行者123 更新时间:2023-12-01 14:29:19 26 4
gpt4 key购买 nike

我正在尝试在 Visual Studio 2017 中编译以下代码:

#include <future>

int main()
{
std::promise<std::reference_wrapper<int>> promise;
(void)promise;
}

但是,我收到以下错误:

error C2512: 'std::reference_wrapper': no appropriate default constructor available

而它在 GCC 和 Clang 上编译得很好。

这是 Visual Studio 中的明确错误还是 std::promise 的有效实现?

最佳答案

看起来是一个 known issue在 MSVC 的标准库实现中。更简单的复现场景:

#include <future>
struct NoDefaultCtor
{
NoDefaultCtor() = delete;
};
int main() {
std::promise<NoDefaultCtor> p;
return 0;
}

关于c++ - std::promise<T> 其中 T 在 Visual Studio 2017 中必须是默认可构造的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61921029/

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