Refactor: Removed begin/end_ptr functions.

This commit is contained in:
Karl-Johan Alm
2016-12-09 12:01:37 +09:00
parent 86017842d6
commit 8c1dbc5e9d
11 changed files with 32 additions and 61 deletions

View File

@@ -59,34 +59,6 @@ inline T* NCONST_PTR(const T* val)
return const_cast<T*>(val);
}
/**
* Important: Do not use the following functions in new code, but use v.data()
* and v.data() + v.size() respectively directly. They were once introduced to
* have a compatible, safe way to get the begin and end pointer of a vector.
* However with C++11 the language has built-in functionality for this and it's
* more readable to just use that.
*/
template <typename V>
inline typename V::value_type* begin_ptr(V& v)
{
return v.data();
}
template <typename V>
inline const typename V::value_type* begin_ptr(const V& v)
{
return v.data();
}
template <typename V>
inline typename V::value_type* end_ptr(V& v)
{
return v.data() + v.size();
}
template <typename V>
inline const typename V::value_type* end_ptr(const V& v)
{
return v.data() + v.size();
}
/*
* Lowest-level serialization and conversion.
* @note Sizes of these types are verified in the tests
@@ -390,14 +362,14 @@ public:
template <class T, class TAl>
explicit CFlatData(std::vector<T,TAl> &v)
{
pbegin = (char*)begin_ptr(v);
pend = (char*)end_ptr(v);
pbegin = (char*)v.data();
pend = (char*)(v.data() + v.size());
}
template <unsigned int N, typename T, typename S, typename D>
explicit CFlatData(prevector<N, T, S, D> &v)
{
pbegin = (char*)begin_ptr(v);
pend = (char*)end_ptr(v);
pbegin = (char*)v.data();
pend = (char*)(v.data() + v.size());
}
char* begin() { return pbegin; }
const char* begin() const { return pbegin; }