Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r67435 - trunk/boost/proto/detail
From: eric_at_[hidden]
Date: 2010-12-23 13:34:36


Author: eric_niebler
Date: 2010-12-23 13:34:33 EST (Thu, 23 Dec 2010)
New Revision: 67435
URL: http://svn.boost.org/trac/boost/changeset/67435

Log:
work around gcc-4.2 ICE
Text files modified:
   trunk/boost/proto/detail/poly_function.hpp | 7 ++++---
   1 files changed, 4 insertions(+), 3 deletions(-)

Modified: trunk/boost/proto/detail/poly_function.hpp
==============================================================================
--- trunk/boost/proto/detail/poly_function.hpp (original)
+++ trunk/boost/proto/detail/poly_function.hpp 2010-12-23 13:34:33 EST (Thu, 23 Dec 2010)
@@ -15,6 +15,7 @@
     #include <boost/ref.hpp>
     #include <boost/mpl/bool.hpp>
     #include <boost/mpl/void.hpp>
+ #include <boost/mpl/size_t.hpp>
     #include <boost/mpl/eval_if.hpp>
     #include <boost/preprocessor/cat.hpp>
     #include <boost/preprocessor/facilities/intercept.hpp>
@@ -185,7 +186,7 @@
         template<typename T> unknown_function_t test_poly_function(T *, ...);
 
         ////////////////////////////////////////////////////////////////////////////////////////////////
- template<typename Fun, typename Sig, std::size_t Switch = sizeof(test_poly_function<Fun>(0,0))>
+ template<typename Fun, typename Sig, typename Switch = mpl::size_t<sizeof(test_poly_function<Fun>(0,0))> >
         struct poly_function_traits
         {
             typedef typename Fun::template result<Sig>::type result_type;
@@ -194,7 +195,7 @@
 
         ////////////////////////////////////////////////////////////////////////////////////////////////
         template<typename Fun, typename Sig>
- struct poly_function_traits<Fun, Sig, sizeof(mono_function_t)>
+ struct poly_function_traits<Fun, Sig, mpl::size_t<sizeof(mono_function_t)> >
         {
             typedef typename Fun::result_type result_type;
             typedef Fun function_type;
@@ -265,7 +266,7 @@
 
         ////////////////////////////////////////////////////////////////////////////////////////////////
         template<typename PolyFun BOOST_PP_ENUM_TRAILING_PARAMS(N, typename A)>
- struct poly_function_traits<PolyFun, PolyFun(BOOST_PP_ENUM_PARAMS(N, A)), sizeof(poly_function_t)>
+ struct poly_function_traits<PolyFun, PolyFun(BOOST_PP_ENUM_PARAMS(N, A)), mpl::size_t<sizeof(poly_function_t)> >
         {
             typedef typename PolyFun::template impl<BOOST_PP_ENUM_PARAMS(N, const A)> function_type;
             typedef typename function_type::result_type result_type;


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