From 365ec0744ca24afdceb9a2bd706a7226af379e06 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Sat, 7 Feb 2009 12:46:04 +0000 Subject: disable vector::resize() workaround for gcc < 4.1 (they already use a const reference) --- Eigen/StdVector | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'Eigen/StdVector') diff --git a/Eigen/StdVector b/Eigen/StdVector index 8fb35a5e5..0298b9e3a 100644 --- a/Eigen/StdVector +++ b/Eigen/StdVector @@ -95,15 +95,8 @@ class vector void resize(size_type __new_size) { resize(__new_size, T()); } - #if defined(_GLIBCXX_VECTOR) - void resize(size_type __new_size, const value_type& __x) - { - if (__new_size < vector_base::size()) - vector_base::_M_erase_at_end(this->_M_impl._M_start + __new_size); - else - vector_base::insert(vector_base::end(), __new_size - vector_base::size(), __x); - } - #elif defined(_VECTOR_) + #if defined(_VECTOR_) + // workaround MSVC std::vector implementation void resize(size_type __new_size, const value_type& __x) { if (vector_base::size() < __new_size) @@ -111,6 +104,18 @@ class vector else if (__new_size < vector_base::size()) vector_base::erase(vector_base::begin() + __new_size, vector_base::end()); } + #elif defined(_GLIBCXX_VECTOR) && EIGEN_GNUC_AT_LEAST(4,1) + // workaround GCC std::vector implementation + // Note that before gcc-4.1 we already have: std::vector::resize(size_type,const T&), + // no no need to workaround ! + void resize(size_type __new_size, const value_type& __x) + { + if (__new_size < vector_base::size()) + vector_base::_M_erase_at_end(this->_M_impl._M_start + __new_size); + else + vector_base::insert(vector_base::end(), __new_size - vector_base::size(), __x); + } + #endif }; -- cgit v1.2.3