#include<std::jthread> int main(){ std ::vector

问题描述 投票:0回答:1

第二种情况有什么问题?从我看到的GCC和Clang支持的情况下。

有不确定的行为吗? 
STD:: vector构造函数#5

指定它可能是由于该元素不是可构造的,但是在这种情况下,第一个元素也不会给出错误吗?

有与constexpr相关的东西?
可能还有其他吗?我在编译错误中看到以下内容:

    error: use of deleted function 'std::jthread::jthread(const std::jthread&)'
  • 为什么首先要使用复制构造函数?这样的初始化是防止不必要的副本构造的主要原因吗? 我找到了这个问题。
    • 首先,
    • std::jthread
      具有
      阐释构建器。因此:
    • auto lambda = [] { std::cout << "New thread during initialization" << std::endl; }; std::jthread t1 = lambda; // impossible std::jthread t2 = std::jthread(lambda); // possible
    • 第二件事。为了像这样使用std::initializer_list<>,类型必须为
    • 拷贝
    (不是)。
  • std::jthread
c++ c++20 constexpr
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.