fixes const-correctness

[SVN r38222]
This commit is contained in:
Tobias Schwinger
2007-07-15 16:25:11 +00:00
parent 76bb8db5b7
commit 50bd63adcd
8 changed files with 64 additions and 49 deletions

View File

@ -32,7 +32,9 @@ namespace boost { namespace fusion
{
Function fnc_transformed;
typedef typename detail::uncr<Function>::type function;
typedef typename detail::qf_c<Function>::type function_c;
typedef typename detail::qf<Function>::type function;
typedef typename detail::call_param<Function>::type func_const_fwd_t;
public:
@ -45,7 +47,7 @@ namespace boost { namespace fusion
struct result;
typedef typename boost::result_of<
function const (fusion::vector0 &) >::type call_const_0_result;
function_c(fusion::vector0 &) >::type call_const_0_result;
inline call_const_0_result operator()() const
{
@ -54,7 +56,7 @@ namespace boost { namespace fusion
}
typedef typename boost::result_of<
function (fusion::vector0 &) >::type call_0_result;
function(fusion::vector0 &) >::type call_0_result;
inline call_0_result operator()()
{
@ -95,20 +97,20 @@ namespace boost
template <class Self, BOOST_PP_ENUM_PARAMS(N,typename T)>
struct result< Self const (BOOST_PP_ENUM_PARAMS(N,T)) >
: boost::result_of< function const (
: boost::result_of< function_c(
BOOST_PP_CAT(fusion::vector,N)< BOOST_PP_ENUM_BINARY_PARAMS(N,
typename detail::cref<T,>::type BOOST_PP_INTERCEPT) > & )>
{ };
template <class Self, BOOST_PP_ENUM_PARAMS(N,typename T)>
struct result< Self (BOOST_PP_ENUM_PARAMS(N,T)) >
: boost::result_of< function (
: boost::result_of< function(
BOOST_PP_CAT(fusion::vector,N)< BOOST_PP_ENUM_BINARY_PARAMS(N,
typename detail::cref<T,>::type BOOST_PP_INTERCEPT) > & )>
{ };
template <BOOST_PP_ENUM_PARAMS(N,typename T)>
inline typename boost::result_of<function(BOOST_PP_CAT(fusion::vector,N)
inline typename boost::result_of<function_c(BOOST_PP_CAT(fusion::vector,N)
<BOOST_PP_ENUM_BINARY_PARAMS(N,T,const& BOOST_PP_INTERCEPT)> & )>::type
operator()(BOOST_PP_ENUM_BINARY_PARAMS(N,T,const& a)) const
{