1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-06 09:09:40 +02:00

Use small_vector for bonus list to reduce allocations

This commit is contained in:
Ivan Savenko
2024-12-18 13:36:11 +00:00
parent 56d5911452
commit ab45c58e26
7 changed files with 21 additions and 13 deletions

View File

@@ -215,6 +215,15 @@ public:
load( data[i]);
}
template <typename T, size_t N>
void load(boost::container::small_vector<T, N>& data)
{
uint32_t length = readAndCheckLength();
data.resize(length);
for (uint32_t i = 0; i < length; i++)
load(data[i]);
}
template <typename T, typename std::enable_if_t < !std::is_same_v<T, bool >, int > = 0>
void load(std::deque<T> & data)
{

View File

@@ -275,6 +275,15 @@ public:
for(uint32_t i=0;i<length;i++)
save(data[i]);
}
template <typename T, size_t N>
void save(const boost::container::small_vector<T, N>& data)
{
uint32_t length = data.size();
*this& length;
for (uint32_t i = 0; i < length; i++)
save(data[i]);
}
template <typename T, typename std::enable_if_t < !std::is_same_v<T, bool >, int > = 0>
void save(const std::deque<T> & data)
{