std::optional<glm::mat4> mPendingCameraUpdate;
代替return null的一种方式。
std::pair<std::vector<float>, std::vector<unsigned int>> generateVeboData() const;
用于函数需要返回多个参数的场景。
- lambda表达式、std::any_of、std::for_each
const auto normalize {
[boardSize{mBoard->size()}, shift{mBoard->size() / 2}](float coord) -> float {
return (coord - shift) / boardSize;
}
};
之后可以通过normalize(coord)调用。
std::any_of(mSnake.begin(), mSnake.end(), [&nextHead](const auto &cell) {
return cell.first.x == nextHead.x && cell.first.y == nextHead.y;
}
std::for_each(vertices.begin(),vertices.end(),[size{mBoard->size()}](float& value)
{ value /= size; });
enum class Direction {Up, Down, Left, Right};
- reserve
为容器预留一段空间的大小,避免无数据时的内存占用。