World created at 0x0x7ffd90bc3ad8
Assets directory: "../assets"
Body created at 0x21c7b80
Now there are 0x21c7b80
World freed at 0x0x7ffd90bc2db8
Body created at 0x21c7c60
Now there are 0x21c7c60
World freed at 0x0x7ffd90bc3338
Body created at 0x22605c0
Now there are 0x22605c0
World freed at 0x0x7ffd90bc3338
World freed at 0x0x7ffd90bc32e0
World freed at 0x0x7ffd90bc32e0
World freed at 0x0x7ffd90bc32e0
World freed at 0x0x7ffd90bc32e0
......
Free body at 0x21c7b80
Кхм.
Там второй поток, в нём бесконечный цикл, в котором вызывается Level.update(), который и вызывает step. Инициализация объектов происходит ещё до запуска потока.
Assets directory: "../assets"
Body created at 0x16afbd0
Now there are 0x16afbd0
Body created at 0x16afcb0
Now there are 0x16afcb0 <-- Здесь не хватает одного body
Body created at 0x17485b0
Now there are 0x17485b0 <-- А здесь уже двух body
<-- Здесь должно выводиться Body #...
Free body at 0x16afbd0
Станислав Макаров: В xml(xsd) список некоторых элементов, из которых нужно сгенерировать много кода на C/C++, который руками писать (и править) долго, муторно и чревато опечатками.
Axian Ltd.: Да видел я эту спецификацию (см. сабж), в i3 трей делается через отдельный i3bar, в котором это как-то запилено согласно спецификации этой, но там мутороно разгребаться из-за специфики реализации и C.
Олег Цилюрик: 1. a / b / c == a / (b / c)
2. если дело по вашему в округлении, то оно ничего не меняет (от слова совсем), т.к., что было int32_t / int32_t / int32_t, что стало int32_t / (int32_t / int32_t).
inline const phys::World& world() const { return m_world; }
inline phys::World& world() { return m_world; }
А было:
inline const phys::World world() const { return m_world; }
inline phys::World world() { return m_world; }