Почему 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

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