Commit 97face15 authored by Alex Ames's avatar Alex Ames Committed by Wouter van Oortmerssen

Changed how vector_data works. (#4467)

In some debug environments using vector[i] does bounds checking even
though the standard specifies that it should not. Using
*(vector.begin()) sidesteps this though, giving the same result without
the bounds checking.
parent f2627e16
......@@ -41,12 +41,14 @@ inline char string_back(const std::string &value) {
// Helper method that retrieves ::data() from a vector in a way that is
// compatible with pre C++11 STLs (e.g stlport).
template <typename T> inline T *vector_data(std::vector<T> &vector) {
return &(vector[0]);
// In some debug environments, operator[] does bounds checking, so &vector[0]
// can't be used.
return &(*vector.begin());
}
template <typename T> inline const T *vector_data(
const std::vector<T> &vector) {
return &(vector[0]);
return &(*vector.begin());
}
template <typename T, typename V>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment