У меня есть класс с именем RenderCommand:NDK C++ 11, вызов удаленной ошибки конструктора
class RenderCommand
{
public:
RenderCommandType commandType;
RenderCommand() : commandType(RenderCommandTypeNone) {};
virtual ~RenderCommand() {};
};
я тогда очередь из этих RenderCommands которая хранит unique_ptrs им:
typedef std::deque<std::unique_ptr<RenderCommand>> RenderQueue;
Наконец в секции кода, создать вектор этих RenderQueues, и попытаться изменить его размер:
std::vector<RenderQueue> queues;
queues.resize(4);
Изменение размеров линии давая мне несколько вопросов. В лязгом я получаю сообщение об ошибке:
call to deleted constructor of 'std::unique_ptr<RenderCommand, std::default_delete<RenderCommand> >'
С GCC 4.8, я просто получить целую кучу ошибок, похожий на
required from '_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = std::_Deque_iterator<std::unique_ptr<RenderCommand>, const std::unique_ptr<RenderCommand>&, const std::unique_ptr<RenderCommand>*>; _ForwardIterator = std::_Deque_iterator<std::unique_ptr<RenderCommand>, std::unique_ptr<RenderCommand>&, std::unique_ptr<RenderCommand>*>; _Tp = std::unique_ptr<RenderCommand>]'
Это нормально компилируется в Visual Studio 2012 однако, так что я немного потерял. Я ценю любую помощь, которую вы, ребята, можете дать!
EDIT: RenderCommandType это просто перечисление:
enum RenderCommandType
{
RenderCommandTypeNone = 0,
RenderCommandTypeBeginRepeat,
RenderCommandTypeEndRepeat,
RenderCommandTypeBeginScene,
RenderCommandTypeEndScene,
//etc
};
EDIT2: Хорошо это кажется станд :: Deque проблема, изменение RenderQueue к:
typedef std::vector<std::unique_ptr<RenderCommand>> RenderQueue;
работ. Кроме удаления ссылок на мой собственный класс и просто используя ИНТ по-прежнему не работает (если не указано, как выше я заменяю Deque с вектором):
std::vector<std::deque<std::unique_ptr<int>>> tempQueue;
tempQueue.resize(4);
: -/
Позвольте мне телепатически догадаться: RenderCommandType удалили, недоступны или неоднозначные конструкторы перемещения или не были тривиально скопируемыми? Добавьте в свой вопрос определение RenderCommandType. –
Извините за путаницу, RenderCommandType - это просто перечисление, добавленное в исходный вопрос. – Rajveer
Возможно, этот ответ помогает http://stackoverflow.com/a/19692951/1741542 –