Обновить
0
0
Евгений@MarkusD

Chief Software Engineer in Game Development

Отправить сообщение

До стандарта C++17 совместимым с C++ стандартом был C98. Не C99.

Начиная со стандарта C++17 совместимым с C++ стандартом стал C11.

Стандарт C, при этом, и обновляется, и улучшается. Многие спорные практики из ранних стандартов C сейчас или утратили силу, или получили титул опциональных.

Зачем чинить инструмент, который не сломан? Как исправлять инструмент, который достаточно эффективно покрывает задачи своего применения?

Относительно функции calculatePositionsAndBounds есть предложение использовать std::transform. Так можно избавиться от ссылки на контейнер в замыкании и еще больше прояснить смысл творящегося.

Нечто вроде такого:
vector<Shape> calculatePositionsAndBounds(float const dt, vector<Shape> const shapes)
{
	vector<Shape> updatedShapes;
	updatedShapes.reserve(shapes.size());
	
	transform(shapes.begin(), shapes.end(), back_inserter(updatedShapes), [dt](Shape const shape)
	{
		return Shape{shape.id, shape.vertices, calculatePosition(shape, dt), shape.velocity, shape.bounds, shape.cellsRange, shape.color, shape.massInverse};
	});
	
	return updatedShapes;
}

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Разработчик игр
Ведущий
От 600 000 ₽
C++
Разработка игр
C
Python
C#
Java
Git
SVN
Разработка под Android