This bug has been fixed upstream, and will be marked in next changelog
as "Close: ...".
If in the meanwhile anyone knows/wants to patch it for Debian, I attach
the patch here.
JL
Index: libs/base/include/mrpt/math/ops_containers.h
===================================================================
--- libs/base/include/mrpt/math/ops_containers.h (revision 2212)
+++ libs/base/include/mrpt/math/ops_containers.h (working copy)
@@ -248,11 +248,13 @@
}
/** Finds the maximum value (and the corresponding zero-based index) from a given container.
+ * \exception std::exception On an empty input vector
*/
template <class CONTAINER>
typename CONTAINER::value_type
maximum(const CONTAINER &v, size_t *maxIndex)
{
+ ASSERT_ABOVE_(v.size(),0)
typename CONTAINER::const_iterator maxIt = std::max_element(v.begin(),v.end());
if (maxIndex) *maxIndex = std::distance(v.begin(),maxIt);
return *maxIt;
@@ -260,11 +262,13 @@
/** Finds the maximum value (and the corresponding zero-based index) from a given vector.
* \sa maximum, minimum_maximum
+ * \exception std::exception On an empty input vector
*/
template <class CONTAINER>
typename CONTAINER::value_type
minimum(const CONTAINER &v, size_t *minIndex)
{
+ ASSERT_ABOVE_(v.size(),0)
typename CONTAINER::const_iterator minIt = std::min_element(v.begin(),v.end());
if (minIndex) *minIndex = std::distance(v.begin(),minIt);
return *minIt;
@@ -272,6 +276,7 @@
/** Compute the minimum and maximum of a vector at once
* \sa maximum, minimum
+ * \exception std::exception On an empty input vector
*/
template <class CONTAINER>
void minimum_maximum(
@@ -281,6 +286,7 @@
size_t *minIndex,
size_t *maxIndex)
{
+ ASSERT_ABOVE_(v.size(),0)
const size_t N = v.size();
if (N)
{