forked from boostorg/bind
Remove workarounds from bind.hpp
This commit is contained in:
@@ -8,44 +8,30 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// bind.hpp - binds function objects to arguments
|
// bind.hpp - binds function objects to arguments
|
||||||
//
|
//
|
||||||
// Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd.
|
// Copyright 2001-2005, 2024 Peter Dimov
|
||||||
// Copyright (c) 2001 David Abrahams
|
// Copyright 2001 David Abrahams
|
||||||
// Copyright (c) 2005 Peter Dimov
|
|
||||||
//
|
//
|
||||||
// Distributed under the Boost Software License, Version 1.0. (See
|
// Distributed under the Boost Software License, Version 1.0. (See
|
||||||
// accompanying file LICENSE_1_0.txt or copy at
|
// accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
//
|
//
|
||||||
// See http://www.boost.org/libs/bind/bind.html for documentation.
|
// See http://www.boost.org/libs/bind for documentation.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include <boost/bind/detail/requires_cxx11.hpp>
|
|
||||||
#include <boost/config.hpp>
|
|
||||||
#include <boost/bind/mem_fn.hpp>
|
|
||||||
#include <boost/type.hpp>
|
|
||||||
#include <boost/is_placeholder.hpp>
|
|
||||||
#include <boost/bind/arg.hpp>
|
|
||||||
#include <boost/bind/detail/result_traits.hpp>
|
#include <boost/bind/detail/result_traits.hpp>
|
||||||
|
#include <boost/bind/mem_fn.hpp>
|
||||||
|
#include <boost/bind/arg.hpp>
|
||||||
#include <boost/bind/std_placeholders.hpp>
|
#include <boost/bind/std_placeholders.hpp>
|
||||||
#include <boost/config/workaround.hpp>
|
|
||||||
#include <boost/visit_each.hpp>
|
#include <boost/visit_each.hpp>
|
||||||
|
#include <boost/is_placeholder.hpp>
|
||||||
|
#include <boost/type.hpp>
|
||||||
#include <boost/core/ref.hpp>
|
#include <boost/core/ref.hpp>
|
||||||
#include <boost/core/enable_if.hpp>
|
#include <boost/config.hpp>
|
||||||
#include <boost/bind/detail/is_same.hpp>
|
#include <boost/config/workaround.hpp>
|
||||||
|
|
||||||
#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
|
|
||||||
#include <utility> // std::forward
|
#include <utility> // std::forward
|
||||||
#endif
|
#include <type_traits>
|
||||||
|
|
||||||
// Borland-specific bug, visit_each() silently fails to produce code
|
|
||||||
|
|
||||||
#if defined(BOOST_BORLANDC)
|
|
||||||
# define BOOST_BIND_VISIT_EACH boost::visit_each
|
|
||||||
#else
|
|
||||||
# define BOOST_BIND_VISIT_EACH visit_each
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <boost/bind/storage.hpp>
|
#include <boost/bind/storage.hpp>
|
||||||
|
|
||||||
@@ -845,8 +831,6 @@ public:
|
|||||||
|
|
||||||
// bind_t
|
// bind_t
|
||||||
|
|
||||||
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !(defined(BOOST_GCC) && BOOST_GCC < 40600)
|
|
||||||
|
|
||||||
template< class A1 > class rrlist1
|
template< class A1 > class rrlist1
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@@ -1402,11 +1386,8 @@ public:
|
|||||||
|
|
||||||
template<class V> void accept( V & v ) const
|
template<class V> void accept( V & v ) const
|
||||||
{
|
{
|
||||||
#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( BOOST_BORLANDC )
|
|
||||||
using boost::visit_each;
|
using boost::visit_each;
|
||||||
#endif
|
visit_each( v, f_, 0 );
|
||||||
|
|
||||||
BOOST_BIND_VISIT_EACH( v, f_, 0 );
|
|
||||||
l_.accept( v );
|
l_.accept( v );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1416,84 +1397,15 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
template<class R, class F, class L> class bind_t
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
typedef bind_t this_type;
|
|
||||||
|
|
||||||
bind_t(F f, L const & l): f_(f), l_(l) {}
|
|
||||||
|
|
||||||
#include <boost/bind/bind_template.hpp>
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// function_equal
|
// function_equal
|
||||||
|
|
||||||
#ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
|
||||||
|
|
||||||
// put overloads in _bi, rely on ADL
|
|
||||||
|
|
||||||
# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
|
||||||
|
|
||||||
template<class R, class F, class L> bool function_equal( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b )
|
template<class R, class F, class L> bool function_equal( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b )
|
||||||
{
|
{
|
||||||
return a.compare(b);
|
return a.compare(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
# else
|
|
||||||
|
|
||||||
template<class R, class F, class L> bool function_equal_impl( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b, int )
|
|
||||||
{
|
|
||||||
return a.compare(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
|
||||||
|
|
||||||
#else // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
|
||||||
|
|
||||||
// put overloads in boost
|
|
||||||
|
|
||||||
} // namespace _bi
|
|
||||||
|
|
||||||
# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
|
||||||
|
|
||||||
template<class R, class F, class L> bool function_equal( _bi::bind_t<R, F, L> const & a, _bi::bind_t<R, F, L> const & b )
|
|
||||||
{
|
|
||||||
return a.compare(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
# else
|
|
||||||
|
|
||||||
template<class R, class F, class L> bool function_equal_impl( _bi::bind_t<R, F, L> const & a, _bi::bind_t<R, F, L> const & b, int )
|
|
||||||
{
|
|
||||||
return a.compare(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
|
||||||
|
|
||||||
namespace _bi
|
|
||||||
{
|
|
||||||
|
|
||||||
#endif // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
|
||||||
|
|
||||||
// add_value
|
// add_value
|
||||||
|
|
||||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530)
|
|
||||||
|
|
||||||
#if defined( BOOST_BORLANDC ) && BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT(0x582) )
|
|
||||||
|
|
||||||
template<class T> struct add_value
|
|
||||||
{
|
|
||||||
typedef _bi::value<T> type;
|
|
||||||
};
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
template< class T, int I > struct add_value_2
|
template< class T, int I > struct add_value_2
|
||||||
{
|
{
|
||||||
typedef boost::arg<I> type;
|
typedef boost::arg<I> type;
|
||||||
@@ -1509,8 +1421,6 @@ template<class T> struct add_value
|
|||||||
typedef typename add_value_2< T, boost::is_placeholder< T >::value >::type type;
|
typedef typename add_value_2< T, boost::is_placeholder< T >::value >::type type;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
template<class T> struct add_value< value<T> >
|
template<class T> struct add_value< value<T> >
|
||||||
{
|
{
|
||||||
typedef _bi::value<T> type;
|
typedef _bi::value<T> type;
|
||||||
@@ -1536,45 +1446,6 @@ template<class R, class F, class L> struct add_value< bind_t<R, F, L> >
|
|||||||
typedef bind_t<R, F, L> type;
|
typedef bind_t<R, F, L> type;
|
||||||
};
|
};
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
template<int I> struct _avt_0;
|
|
||||||
|
|
||||||
template<> struct _avt_0<1>
|
|
||||||
{
|
|
||||||
template<class T> struct inner
|
|
||||||
{
|
|
||||||
typedef T type;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
template<> struct _avt_0<2>
|
|
||||||
{
|
|
||||||
template<class T> struct inner
|
|
||||||
{
|
|
||||||
typedef value<T> type;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef char (&_avt_r1) [1];
|
|
||||||
typedef char (&_avt_r2) [2];
|
|
||||||
|
|
||||||
template<class T> _avt_r1 _avt_f(value<T>);
|
|
||||||
template<class T> _avt_r1 _avt_f(reference_wrapper<T>);
|
|
||||||
template<int I> _avt_r1 _avt_f(arg<I>);
|
|
||||||
template<int I> _avt_r1 _avt_f(arg<I> (*) ());
|
|
||||||
template<class R, class F, class L> _avt_r1 _avt_f(bind_t<R, F, L>);
|
|
||||||
|
|
||||||
_avt_r2 _avt_f(...);
|
|
||||||
|
|
||||||
template<class T> struct add_value
|
|
||||||
{
|
|
||||||
static T t();
|
|
||||||
typedef typename _avt_0<sizeof(_avt_f(t()))>::template inner<T>::type type;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// list_av_N
|
// list_av_N
|
||||||
|
|
||||||
template<class A1> struct list_av_1
|
template<class A1> struct list_av_1
|
||||||
@@ -1714,36 +1585,12 @@ BOOST_BIND_OPERATOR( ||, logical_or )
|
|||||||
|
|
||||||
#undef BOOST_BIND_OPERATOR
|
#undef BOOST_BIND_OPERATOR
|
||||||
|
|
||||||
#if defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3)
|
// visit_each
|
||||||
|
|
||||||
// resolve ambiguity with rel_ops
|
|
||||||
|
|
||||||
#define BOOST_BIND_OPERATOR( op, name ) \
|
|
||||||
\
|
|
||||||
template<class R, class F, class L> \
|
|
||||||
bind_t< bool, name, list2< bind_t<R, F, L>, bind_t<R, F, L> > > \
|
|
||||||
operator op (bind_t<R, F, L> const & f, bind_t<R, F, L> const & g) \
|
|
||||||
{ \
|
|
||||||
typedef list2< bind_t<R, F, L>, bind_t<R, F, L> > list_type; \
|
|
||||||
return bind_t<bool, name, list_type> ( name(), list_type(f, g) ); \
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOST_BIND_OPERATOR( !=, not_equal )
|
|
||||||
BOOST_BIND_OPERATOR( <=, less_equal )
|
|
||||||
BOOST_BIND_OPERATOR( >, greater )
|
|
||||||
BOOST_BIND_OPERATOR( >=, greater_equal )
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// visit_each, ADL
|
|
||||||
|
|
||||||
#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( BOOST_BORLANDC ) \
|
|
||||||
&& !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)
|
|
||||||
|
|
||||||
template<class V, class T> void visit_each( V & v, value<T> const & t, int )
|
template<class V, class T> void visit_each( V & v, value<T> const & t, int )
|
||||||
{
|
{
|
||||||
using boost::visit_each;
|
using boost::visit_each;
|
||||||
BOOST_BIND_VISIT_EACH( v, t.get(), 0 );
|
visit_each( v, t.get(), 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class V, class R, class F, class L> void visit_each( V & v, bind_t<R, F, L> const & t, int )
|
template<class V, class R, class F, class L> void visit_each( V & v, bind_t<R, F, L> const & t, int )
|
||||||
@@ -1751,27 +1598,8 @@ template<class V, class R, class F, class L> void visit_each( V & v, bind_t<R, F
|
|||||||
t.accept( v );
|
t.accept( v );
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
} // namespace _bi
|
} // namespace _bi
|
||||||
|
|
||||||
// visit_each, no ADL
|
|
||||||
|
|
||||||
#if defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( BOOST_BORLANDC ) \
|
|
||||||
|| (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)
|
|
||||||
|
|
||||||
template<class V, class T> void visit_each( V & v, _bi::value<T> const & t, int )
|
|
||||||
{
|
|
||||||
BOOST_BIND_VISIT_EACH( v, t.get(), 0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class V, class R, class F, class L> void visit_each( V & v, _bi::bind_t<R, F, L> const & t, int )
|
|
||||||
{
|
|
||||||
t.accept( v );
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// is_bind_expression
|
// is_bind_expression
|
||||||
|
|
||||||
template< class T > struct is_bind_expression
|
template< class T > struct is_bind_expression
|
||||||
@@ -1779,15 +1607,11 @@ template< class T > struct is_bind_expression
|
|||||||
enum _vt { value = 0 };
|
enum _vt { value = 0 };
|
||||||
};
|
};
|
||||||
|
|
||||||
#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
|
|
||||||
|
|
||||||
template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< R, F, L > >
|
template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< R, F, L > >
|
||||||
{
|
{
|
||||||
enum _vt { value = 1 };
|
enum _vt { value = 1 };
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// bind
|
// bind
|
||||||
|
|
||||||
#ifndef BOOST_BIND
|
#ifndef BOOST_BIND
|
||||||
@@ -1958,8 +1782,6 @@ template<class R, class F, class A1, class A2, class A3, class A4, class A5, cla
|
|||||||
return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
|
return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
|
|
||||||
|
|
||||||
// adaptable function objects
|
// adaptable function objects
|
||||||
|
|
||||||
template<class F>
|
template<class F>
|
||||||
@@ -2042,8 +1864,6 @@ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, cl
|
|||||||
return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
|
return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
|
|
||||||
|
|
||||||
// function pointers
|
// function pointers
|
||||||
|
|
||||||
#define BOOST_BIND_CC
|
#define BOOST_BIND_CC
|
||||||
@@ -2171,20 +1991,6 @@ template<class F, class A1, class A2, class A3, class A4, class A5, class A6, cl
|
|||||||
|
|
||||||
// data member pointers
|
// data member pointers
|
||||||
|
|
||||||
#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
|
|
||||||
|| ( defined(BOOST_BORLANDC) && BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT( 0x620 ) ) )
|
|
||||||
|
|
||||||
template<class R, class T, class A1>
|
|
||||||
_bi::bind_t< R, _mfi::dm<R, T>, typename _bi::list_av_1<A1>::type >
|
|
||||||
BOOST_BIND(R T::*f, A1 a1)
|
|
||||||
{
|
|
||||||
typedef _mfi::dm<R, T> F;
|
|
||||||
typedef typename _bi::list_av_1<A1>::type list_type;
|
|
||||||
return _bi::bind_t<R, F, list_type>( F(f), list_type(a1) );
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
namespace _bi
|
namespace _bi
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -2212,8 +2018,6 @@ template< class R, class T > struct add_cref< R (T::*) (), 1 >
|
|||||||
typedef void type;
|
typedef void type;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if !defined(__IBMCPP__) || __IBMCPP_FUNC_CV_TMPL_ARG_DEDUCTION
|
|
||||||
|
|
||||||
template< class R, class T > struct add_cref< R (T::*) () const, 1 >
|
template< class R, class T > struct add_cref< R (T::*) () const, 1 >
|
||||||
{
|
{
|
||||||
typedef void type;
|
typedef void type;
|
||||||
@@ -2228,8 +2032,6 @@ template< class R, class T > struct add_cref< R (T::*) () const noexcept, 1 >
|
|||||||
|
|
||||||
#endif // __cpp_noexcept_function_type
|
#endif // __cpp_noexcept_function_type
|
||||||
|
|
||||||
#endif // __IBMCPP__
|
|
||||||
|
|
||||||
template<class R> struct isref
|
template<class R> struct isref
|
||||||
{
|
{
|
||||||
enum value_type { value = 0 };
|
enum value_type { value = 0 };
|
||||||
@@ -2274,8 +2076,6 @@ BOOST_BIND( M T::*f, A1 a1 )
|
|||||||
return _bi::bind_t< result_type, F, list_type >( F( f ), list_type( a1 ) );
|
return _bi::bind_t< result_type, F, list_type >( F( f ), list_type( a1 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
} // namespace boost
|
} // namespace boost
|
||||||
|
|
||||||
#ifndef BOOST_BIND_NO_PLACEHOLDERS
|
#ifndef BOOST_BIND_NO_PLACEHOLDERS
|
||||||
|
@@ -21,9 +21,8 @@
|
|||||||
// See http://www.boost.org/libs/bind/bind.html for documentation.
|
// See http://www.boost.org/libs/bind/bind.html for documentation.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include <boost/bind/detail/requires_cxx11.hpp>
|
|
||||||
#include <boost/config.hpp>
|
|
||||||
#include <boost/bind/arg.hpp>
|
#include <boost/bind/arg.hpp>
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
#ifdef BOOST_MSVC
|
#ifdef BOOST_MSVC
|
||||||
# pragma warning(push)
|
# pragma warning(push)
|
||||||
@@ -44,7 +43,7 @@ template<class A1> struct storage1
|
|||||||
|
|
||||||
template<class V> void accept(V & v) const
|
template<class V> void accept(V & v) const
|
||||||
{
|
{
|
||||||
BOOST_BIND_VISIT_EACH(v, a1_, 0);
|
visit_each(v, a1_, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
A1 a1_;
|
A1 a1_;
|
||||||
@@ -83,7 +82,7 @@ template<class A1, class A2> struct storage2: public storage1<A1>
|
|||||||
template<class V> void accept(V & v) const
|
template<class V> void accept(V & v) const
|
||||||
{
|
{
|
||||||
inherited::accept(v);
|
inherited::accept(v);
|
||||||
BOOST_BIND_VISIT_EACH(v, a2_, 0);
|
visit_each(v, a2_, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
A2 a2_;
|
A2 a2_;
|
||||||
@@ -132,7 +131,7 @@ template<class A1, class A2, class A3> struct storage3: public storage2< A1, A2
|
|||||||
template<class V> void accept(V & v) const
|
template<class V> void accept(V & v) const
|
||||||
{
|
{
|
||||||
inherited::accept(v);
|
inherited::accept(v);
|
||||||
BOOST_BIND_VISIT_EACH(v, a3_, 0);
|
visit_each(v, a3_, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
A3 a3_;
|
A3 a3_;
|
||||||
@@ -181,7 +180,7 @@ template<class A1, class A2, class A3, class A4> struct storage4: public storage
|
|||||||
template<class V> void accept(V & v) const
|
template<class V> void accept(V & v) const
|
||||||
{
|
{
|
||||||
inherited::accept(v);
|
inherited::accept(v);
|
||||||
BOOST_BIND_VISIT_EACH(v, a4_, 0);
|
visit_each(v, a4_, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
A4 a4_;
|
A4 a4_;
|
||||||
@@ -230,7 +229,7 @@ template<class A1, class A2, class A3, class A4, class A5> struct storage5: publ
|
|||||||
template<class V> void accept(V & v) const
|
template<class V> void accept(V & v) const
|
||||||
{
|
{
|
||||||
inherited::accept(v);
|
inherited::accept(v);
|
||||||
BOOST_BIND_VISIT_EACH(v, a5_, 0);
|
visit_each(v, a5_, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
A5 a5_;
|
A5 a5_;
|
||||||
@@ -279,7 +278,7 @@ template<class A1, class A2, class A3, class A4, class A5, class A6> struct stor
|
|||||||
template<class V> void accept(V & v) const
|
template<class V> void accept(V & v) const
|
||||||
{
|
{
|
||||||
inherited::accept(v);
|
inherited::accept(v);
|
||||||
BOOST_BIND_VISIT_EACH(v, a6_, 0);
|
visit_each(v, a6_, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
A6 a6_;
|
A6 a6_;
|
||||||
@@ -328,7 +327,7 @@ template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> s
|
|||||||
template<class V> void accept(V & v) const
|
template<class V> void accept(V & v) const
|
||||||
{
|
{
|
||||||
inherited::accept(v);
|
inherited::accept(v);
|
||||||
BOOST_BIND_VISIT_EACH(v, a7_, 0);
|
visit_each(v, a7_, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
A7 a7_;
|
A7 a7_;
|
||||||
@@ -377,7 +376,7 @@ template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, c
|
|||||||
template<class V> void accept(V & v) const
|
template<class V> void accept(V & v) const
|
||||||
{
|
{
|
||||||
inherited::accept(v);
|
inherited::accept(v);
|
||||||
BOOST_BIND_VISIT_EACH(v, a8_, 0);
|
visit_each(v, a8_, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
A8 a8_;
|
A8 a8_;
|
||||||
@@ -426,7 +425,7 @@ template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, c
|
|||||||
template<class V> void accept(V & v) const
|
template<class V> void accept(V & v) const
|
||||||
{
|
{
|
||||||
inherited::accept(v);
|
inherited::accept(v);
|
||||||
BOOST_BIND_VISIT_EACH(v, a9_, 0);
|
visit_each(v, a9_, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
A9 a9_;
|
A9 a9_;
|
||||||
|
Reference in New Issue
Block a user