Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r74476 - trunk/boost/accumulators/numeric
From: eric_at_[hidden]
Date: 2011-09-19 22:56:01


Author: eric_niebler
Date: 2011-09-19 22:56:00 EDT (Mon, 19 Sep 2011)
New Revision: 74476
URL: http://svn.boost.org/trac/boost/changeset/74476

Log:
statically assert that std::numeric_limits is specialized
Text files modified:
   trunk/boost/accumulators/numeric/functional.hpp | 7 +++++++
   1 files changed, 7 insertions(+), 0 deletions(-)

Modified: trunk/boost/accumulators/numeric/functional.hpp
==============================================================================
--- trunk/boost/accumulators/numeric/functional.hpp (original)
+++ trunk/boost/accumulators/numeric/functional.hpp 2011-09-19 22:56:00 EDT (Mon, 19 Sep 2011)
@@ -10,6 +10,7 @@
 
 #include <limits>
 #include <functional>
+#include <boost/static_assert.hpp>
 #include <boost/mpl/if.hpp>
 #include <boost/mpl/and.hpp>
 #include <boost/type_traits/remove_const.hpp>
@@ -277,6 +278,8 @@
         struct as_min_base
           : std::unary_function<Arg, typename remove_const<Arg>::type>
         {
+ BOOST_STATIC_ASSERT(std::numeric_limits<typename remove_const<Arg>::type>::is_specialized);
+
             typename remove_const<Arg>::type operator ()(Arg &) const
             {
                 return (std::numeric_limits<typename remove_const<Arg>::type>::min)();
@@ -287,6 +290,8 @@
         struct as_min_base<Arg, typename enable_if<is_floating_point<Arg> >::type>
           : std::unary_function<Arg, typename remove_const<Arg>::type>
         {
+ BOOST_STATIC_ASSERT(std::numeric_limits<typename remove_const<Arg>::type>::is_specialized);
+
             typename remove_const<Arg>::type operator ()(Arg &) const
             {
                 return -(std::numeric_limits<typename remove_const<Arg>::type>::max)();
@@ -297,6 +302,8 @@
         struct as_max_base
           : std::unary_function<Arg, typename remove_const<Arg>::type>
         {
+ BOOST_STATIC_ASSERT(std::numeric_limits<typename remove_const<Arg>::type>::is_specialized);
+
             typename remove_const<Arg>::type operator ()(Arg &) const
             {
                 return (std::numeric_limits<typename remove_const<Arg>::type>::max)();


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk