mirror of
https://github.com/boostorg/mpl.git
synced 2025-08-02 22:34:31 +02:00
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:
@@ -17,6 +17,7 @@
|
|||||||
#ifndef BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
|
#ifndef BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
|
||||||
#define 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/lambda_fwd.hpp"
|
||||||
#include "boost/mpl/int_fwd.hpp"
|
#include "boost/mpl/int_fwd.hpp"
|
||||||
#include "boost/mpl/aux_/preprocessor/params.hpp"
|
#include "boost/mpl/aux_/preprocessor/params.hpp"
|
||||||
@@ -32,6 +33,7 @@ template< \
|
|||||||
struct lambda< \
|
struct lambda< \
|
||||||
name< BOOST_MPL_PP_PARAMS(i, T) > \
|
name< BOOST_MPL_PP_PARAMS(i, T) > \
|
||||||
BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<-1>) \
|
BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<-1>) \
|
||||||
|
, void_ \
|
||||||
> \
|
> \
|
||||||
{ \
|
{ \
|
||||||
typedef name< BOOST_MPL_PP_PARAMS(i, T) > type; \
|
typedef name< BOOST_MPL_PP_PARAMS(i, T) > type; \
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
//
|
//
|
||||||
// See http://www.boost.org/libs/mpl for documentation.
|
// 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_/value_wknd.hpp"
|
||||||
#include "boost/mpl/aux_/static_cast.hpp"
|
#include "boost/mpl/aux_/static_cast.hpp"
|
||||||
#include "boost/mpl/aux_/void_spec.hpp"
|
#include "boost/mpl/aux_/void_spec.hpp"
|
||||||
@@ -115,7 +116,7 @@ struct if_
|
|||||||
// on the result of is_reference.
|
// on the result of is_reference.
|
||||||
|
|
||||||
template <class T1, class T2, class T3, class T4> struct bind3;
|
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
|
namespace aux
|
||||||
{
|
{
|
||||||
@@ -134,7 +135,7 @@ namespace aux
|
|||||||
template<
|
template<
|
||||||
typename T1, typename T2, typename T3
|
typename T1, typename T2, typename T3
|
||||||
>
|
>
|
||||||
struct bind3<quote3<if_>, T1, T2, T3>
|
struct bind3<quote3<if_, void_>, T1, T2, T3>
|
||||||
{
|
{
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -143,7 +144,7 @@ struct bind3<quote3<if_>, T1, T2, T3>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef quote3<if_> a0;
|
typedef quote3<if_, void_> a0;
|
||||||
typedef mpl::arg< 1> n1;
|
typedef mpl::arg< 1> n1;
|
||||||
|
|
||||||
typedef aux::replace_unnamed_arg< T1,n1 > r1;
|
typedef aux::replace_unnamed_arg< T1,n1 > r1;
|
||||||
|
Reference in New Issue
Block a user