#pragma once #include #include namespace mbgl { namespace gfx { template class VertexVector { public: using Vertex = V; template void emplace_back(Args&&... args) { static_assert(sizeof...(args) == 1, "wrong buffer element count"); util::ignore({ (v.emplace_back(std::forward(args)), 0)... }); } std::size_t elements() const { return v.size(); } std::size_t bytes() const { return v.size() * sizeof(Vertex); } bool empty() const { return v.empty(); } void clear() { v.clear(); } const Vertex* data() const { return v.data(); } const std::vector& vector() const { return v; } private: std::vector v; }; } // namespace gfx } // namespace mbgl