QtCreator, cmake. Не даёт проитерироваться по вектору объектов и передать их в функцию.
Ошибка /home/bai/pplab1/main.cpp:19: ошибка: call to implicitly-deleted copy constructor of 'Detail'
for (Detail counter : listDetail) {
^ ~
Код:
#include <iostream>
#include <vector>
#include "machine.h"
#include "detail.h"
#include <thread>
#include <chrono>
using namespace std::chrono_literals;
void Process(Detail &list_p) {
while(list_p.Get_machine_list().size() > 0 && list_p.Get_state() < 3) {
if (list_p.Get_last_time() > 0) {
int temp = list_p.Get_last_time();
list_p.Set_last_time(--temp);
}
std::this_thread::sleep_for(2s);
}
}
void Start(const std::vector<Detail> &listDetail) {
for (Detail counter : listDetail) {
Process(counter);
}
}
int main() {
std::vector<Machine>listMachine = {{1, "Collector"}, {2,"Painter"}, {3, "Polisher"}};
std::vector<Detail>listDetail = {{1, "LadaPriora", 3, listMachine[0], listMachine[1]}, {2, "KiaRio", 4, listMachine[2]},
{3, "FordFocus", 7, listMachine[1], listMachine[2]}, {4, "ToyotaPrado", 9, listMachine[0]}};
std::cout << "N | ";
for (auto &x : listMachine){
std::cout << " R" << x.Get_id() << " ";
}
std::cout << " | ";
for (auto &x : listDetail) {
std::cout << " P" << x.Get_id() << " ";
}
std::cout << std::endl;
Start(listDetail);
return 0;
}
UPD: Исправил строку:
void Start(std::vector<Detail> &listDetail) {
for (Detail &counter : listDetail) {
Process(counter);
}
}
Но появилась ошибка
/usr/include/c++/6.3.0/bits/stl_construct.h:75: ошибка: call to implicitly-deleted copy constructor of 'Detail'
{ ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ну вам же прямо говорит компилятор: у вашего класса отсутствует конструктор копирования. В вашем for просто обращайтесь к по ссылке.
А ещё конструктор вектора не может принимать объекты без конструктора копирования (по крайней мере в таком виде). Если вы используете 11 стандарт, то просто создайте пустой вектор и заполните его с помощью emplace_back.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Всем привет, мне нужно построить код внутри шаблона который тоже будет шаблоном Вот мой код
Объявляю $watch на переменную, но вылетает эта ошибка:
Возможно сделать так, что при открытии html файла, он сразу выводился на печать (в PDF) без данного окна? (изображение ниже)
Есть div, который не имеет ни класса, ни id или nameРедактировать html код этого тега нельзя (то есть нельзя приписать ему идентификатор)