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:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user