Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/base
diff options
context:
space:
mode:
authorSergey Yershov <syershov@maps.me>2016-12-21 13:59:08 +0300
committerSergey Yershov <syershov@maps.me>2016-12-28 15:24:52 +0300
commitbd5a2944cb5050b40990500d1f3ad21bad0ad4fb (patch)
treef6f4b2157ac27a33af6c5ca93ee2a43b2f59f05e /base
parent38ea5daee41a75465461b1c1e26d431cf7569d1f (diff)
Fix unit tests
Diffstat (limited to 'base')
-rw-r--r--base/buffer_vector.hpp24
1 files changed, 16 insertions, 8 deletions
diff --git a/base/buffer_vector.hpp b/base/buffer_vector.hpp
index d9df450959..28342a4619 100644
--- a/base/buffer_vector.hpp
+++ b/base/buffer_vector.hpp
@@ -8,6 +8,14 @@
#include <utility>
#include <vector>
+// Calls swap() function using argument dependant lookup.
+// // Do NOT override this function, but override swap() function instead!
+template <typename T> inline void Swap(T & a, T & b)
+{
+ using std::swap;
+ swap(a, b);
+}
+
template <class T, size_t N> class buffer_vector
{
@@ -32,7 +40,7 @@ private:
MoveStatic(buffer_vector<T, N> & rhs)
{
for (size_t i = 0; i < rhs.m_size; ++i)
- std::swap(m_static[i], rhs.m_static[i]);
+ Swap(m_static[i], rhs.m_static[i]);
}
#else
template <class U = T>
@@ -46,7 +54,7 @@ private:
MoveStatic(buffer_vector<T, N> & rhs)
{
for (size_t i = 0; i < rhs.m_size; ++i)
- std::swap(m_static[i], rhs.m_static[i]);
+ Swap(m_static[i], rhs.m_static[i]);
}
#endif
@@ -279,9 +287,9 @@ public:
void swap(buffer_vector & rhs)
{
m_dynamic.swap(rhs.m_dynamic);
- std::swap(m_size, rhs.m_size);
+ Swap(m_size, rhs.m_size);
for (size_t i = 0; i < N; ++i)
- std::swap(m_static[i], rhs.m_static[i]);
+ Swap(m_static[i], rhs.m_static[i]);
}
void push_back(T const & t)
@@ -315,7 +323,7 @@ public:
if (m_size < N)
{
- std::swap(m_static[m_size++], t);
+ Swap(m_static[m_size++], t);
}
else
{
@@ -350,7 +358,7 @@ public:
if (m_size < N)
{
value_type v(std::forward<Args>(args)...);
- std::swap(v, m_static[m_size++]);
+ Swap(v, m_static[m_size++]);
}
else
{
@@ -378,7 +386,7 @@ public:
{
if (pos != m_size)
for (ptrdiff_t i = m_size - 1; i >= pos; --i)
- std::swap(m_static[i], m_static[i + n]);
+ Swap(m_static[i], m_static[i + n]);
m_size += n;
T * writableWhere = &m_static[0] + pos;
@@ -418,7 +426,7 @@ private:
for (size_t i = 0; i < m_size; ++i)
{
m_dynamic.emplace_back();
- std::swap(m_static[i], m_dynamic.back());
+ Swap(m_static[i], m_dynamic.back());
}
m_size = USE_DYNAMIC;
}