2013-03-09 2 views
0
struct vertex 
{ 
    th::Vector3 point[2]; 
    std::list<vertex>::iterator pointConnection[2]; 
}; 

std::list<vertex> vertices; 
vertices.push_back(
    {{vertex1->_getDerivedPosition(), vertex2->_getDerivedPosition()}, 
    {vertices.end(), vertices.end()}} 
); 

Я не мог найти причину, по которой это не сработает, в то время как следующие компилируются в порядке? Вы можете объяснить, пожалуйста? Что я делаю не так?Инициализация на месте структур в контейнере std

vertex v = {{vertex1->_getDerivedPosition(), vertex2->_getDerivedPosition()}, 
    {vertices.end(), vertices.end()}; 
+0

'vertex' не является типом POD, потому что его члены не являются типами POD –

+0

@TonyTheLion Я отредактировал вопрос. Я забыл об этом vector3 и итераторе. Когда я готовил вопрос, структура была совсем другой. Перед тем, как спросить, делали разные вещи. – Etherealone

+0

Тем не менее, если второй работает, не помещает ли это в push_back, который должен работать? У меня были проблемы с этим предметом в течение долгого времени, я никогда не смогу исправить это в первый раз. Мне нужен конструктор и использовать emplace, если он не POD? У конструктора будет много штрафных санкций, потому что это будет сделано LOT. – Etherealone

ответ

Смежные вопросы