Files
tft/help.h
T
2023-01-02 20:24:17 +02:00

37 lines
747 B
C++

#pragma once
#include "common/basicTypes.h"
#include <utility>
template <class Vec> inline
Vec& operator+=(Vec& lhs, Vec&& rhs) // Combine 2 vectors
{
lhs.reserve(lhs.size() + rhs.size());
for(auto& el: rhs)
lhs.push_back( std::forward<decltype(el)>(el) );
return lhs;
}
template <class Vec> inline
Vec& operator+=(Vec& lhs, const Vec& rhs) // Combine 2 vectors
{
lhs.reserve(lhs.size() + rhs.size());
for(const auto& el: rhs)
lhs.push_back( std::forward<decltype(el)>(el) );
return lhs;
}
template <class Vec> inline
void remove(Vec& vec, size_t pos) /* Remove from vector by moving the last element in its place */
{
vec[pos] = vec[vec.size() - 1];
vec.pop_back();
}
inline I32 max(I32 a, I32 b)
{
return a >= b ? a : b;
}