diff --git a/libs/geom/include/psemek/geom/concat.hpp b/libs/geom/include/psemek/geom/concat.hpp new file mode 100644 index 00000000..cb5e3080 --- /dev/null +++ b/libs/geom/include/psemek/geom/concat.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include + +namespace psemek::geom +{ + + template + auto concat(vector const & ... vs) + { + vector result; + + std::size_t i = 0; + + auto apply = [&](vector const & v) + { + for (std::size_t j = 0; j < N;) + result[i++] = v[j++]; + }; + + (apply(vs), ...); + + return result; + } + +}