Я бегу в неприятности, если я хотел бы создать массив объектов, как это:Как создать массив объектов, которые не перемещаются/копировать конструктивны
SM sc[8]{{0},{1},{2},{3},{4},{5},{6},{7}};
Конструктор для СМ определяется как:
SM::SM(int);
Потому что в C++ Each member is copy-initialized from the corresponding initializer-clause.
, у меня есть нерешенная проблема.
Я уже прочитал:
Move Constructors and Static Arrays
Initialization of member array objects avoiding move constructor
Move constructor is required even if it is not used. Why?
constexpr array of constexpr objects using move ctor
Да, все ответы, описывающие очень хорошо, что Giong на инициализацию список, но я мог бы не нашел идеи, как получить статический массив o f теперь.
Есть ли какая-нибудь работа для решения этой проблемы? Создание массива указателей и инициализация времени выполнения с помощью новой или новой операции @ требуют намного большего времени работы в памяти. Это немного проблематично, потому что я на 8-битном контроллере AVR.
Вы упоминаете «проблему» и «эту проблему», но не указываете фактическую ошибку. – Drop
Ошибка: SM :: SM (SM &&) неявно удаляется, поскольку определение по умолчанию будет плохо сформировано: SM :: SM (SM &&) = default; Длинный список ошибок проходит через длинный список подклассов, которые унаследованы от моего класса SM. Возможно, я смогу свести свою проблему до полного примера. Но это не помогает, потому что тот факт, что класс не может быть сконструирован, будет сохранен. – Klaus
[Работает для меня] (http://coliru.stacked-crooked.com/a/f67d4683fe50095d). –