Fixes for mistakes in tagged lambda conversion. Aleksey, I'm not sure if these are really what you intend, but they stop the errors.

[SVN r19436]
This commit is contained in:
Dave Abrahams
2003-08-04 15:42:46 +00:00
parent c62645ac2b
commit c159a0d3ce
2 changed files with 6 additions and 3 deletions

View File

@@ -17,6 +17,7 @@
#ifndef BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
#define BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
#include "boost/mpl/void.hpp"
#include "boost/mpl/lambda_fwd.hpp"
#include "boost/mpl/int_fwd.hpp"
#include "boost/mpl/aux_/preprocessor/params.hpp"
@@ -32,6 +33,7 @@ template< \
struct lambda< \
name< BOOST_MPL_PP_PARAMS(i, T) > \
BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<-1>) \
, void_ \
> \
{ \
typedef name< BOOST_MPL_PP_PARAMS(i, T) > type; \

View File

@@ -17,6 +17,7 @@
//
// See http://www.boost.org/libs/mpl for documentation.
#include "boost/mpl/void.hpp"
#include "boost/mpl/aux_/value_wknd.hpp"
#include "boost/mpl/aux_/static_cast.hpp"
#include "boost/mpl/aux_/void_spec.hpp"
@@ -115,7 +116,7 @@ struct if_
// on the result of is_reference.
template <class T1, class T2, class T3, class T4> struct bind3;
template <template <class T1, class T2, class T3> class F> struct quote3;
template <template <class T1, class T2, class T3> class F, class tag> struct quote3;
namespace aux
{
@@ -134,7 +135,7 @@ namespace aux
template<
typename T1, typename T2, typename T3
>
struct bind3<quote3<if_>, T1, T2, T3>
struct bind3<quote3<if_, void_>, T1, T2, T3>
{
template<
typename U1 = void_, typename U2 = void_, typename U3 = void_
@@ -143,7 +144,7 @@ struct bind3<quote3<if_>, T1, T2, T3>
struct apply
{
private:
typedef quote3<if_> a0;
typedef quote3<if_, void_> a0;
typedef mpl::arg< 1> n1;
typedef aux::replace_unnamed_arg< T1,n1 > r1;