From aa9fc586b65391c0bdd45d8b77f88ecb3bacc1bd Mon Sep 17 00:00:00 2001 From: nojhan Date: Sun, 1 Apr 2012 11:59:43 +0200 Subject: [PATCH] assert pop size is not null in elements accessors --- eo/src/eoPop.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/eo/src/eoPop.h b/eo/src/eoPop.h index 3ea53f46..9c4c6bac 100644 --- a/eo/src/eoPop.h +++ b/eo/src/eoPop.h @@ -185,10 +185,12 @@ public: #if defined(__CUDACC__) eoPop::iterator it_best_element() { - eoPop:: iterator it = std::max_element(begin(), end()); + eoPop:: iterator it = std::max_element(begin(), end()); #else - typename eoPop::iterator it_best_element() { - typename eoPop::iterator it = std::max_element(begin(), end()); + typename eoPop::iterator it_best_element() + { + assert( this->size() > 0 ); + typename eoPop::iterator it = std::max_element(begin(), end()); #endif return it; } @@ -199,7 +201,7 @@ public: #if defined(__CUDACC__) eoPop::const_iterator it = std::max_element(begin(), end()); #else - typename eoPop::const_iterator it = std::max_element(begin(), end()); + typename eoPop::const_iterator it = std::max_element(begin(), end()); #endif return (*it); } @@ -210,6 +212,7 @@ public: #if defined(__CUDACC__) eoPop::const_iterator it = std::min_element(begin(), end()); #else + assert( this->size() > 0 ); typename eoPop::const_iterator it = std::min_element(begin(), end()); #endif return (*it); @@ -223,6 +226,7 @@ public: #else typename eoPop::iterator it_worse_element() { + assert( this->size() > 0 ); typename eoPop::iterator it = std::min_element(begin(), end()); #endif return it; @@ -239,6 +243,7 @@ public: #else typename eoPop::iterator nth_element(int nth) { + assert( this->size() > 0 ); typename eoPop::iterator it = begin() + nth; #endif std::nth_element(begin(), it, end(), std::greater()); @@ -265,6 +270,7 @@ public: void nth_element(int which, std::vector& result) const { + assert( this->size() > 0 ); result.resize(size()); std::transform(begin(), end(), result.begin(), Ref());