Почему STD :: Vector > не может быть инициализирован через std :: initializer_list?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему STD :: Vector > не может быть инициализирован через std :: initializer_list?

Сообщение Anonymous »

У меня есть 2 примера кода, где у меня есть вектор jThreads: < /p>

Код: Выделить всё

#include 
#include 
#include 

int main() {
std::vector threads;

threads.emplace_back([] {
std::cout 
#include 
#include 
#include 

int main() {
std::vector threads {
{[] {
std::cout 
[list]
[*] Есть ли неопределенное поведение? std :: векторный конструктор № 5 указывает, что это может быть связано с тем, что элемент не подлежит эмплукзаковам, но в этом случае не будет первым из них также не выдает ошибку? < /li>
 Связанный с contexpr? < /li>
 Может быть, что -то еще? Я вижу следующее в ошибке компиляции:

error: use of deleted function 'std::jthread::jthread(const std::jthread&)'
[*] Почему он пытается использовать конструктор копирования в первую очередь? Разве основная причина такой инициализации предотвращает ненужные конструкции копирования? Ссылка на его ответ упоминает.
[/list]



Подробнее здесь: https://stackoverflow.com/questions/794 ... initialize
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»