mirror of
https://github.com/boostorg/lambda.git
synced 2026-01-21 04:52:25 +00:00
lambda_development branch creation
[SVN r11711]
This commit is contained in:
27
include/boost/lambda/bind.hpp
Normal file
27
include/boost/lambda/bind.hpp
Normal file
@@ -0,0 +1,27 @@
|
||||
// -- bind.hpp -- Boost Lambda Library --------------------------------------
|
||||
|
||||
// Copyright (C) 1999-2001 Jaakko Järvi (jaakko.jarvi@cs.utu.fi)
|
||||
// Gary Powell (gwpowell@hotmail.com)
|
||||
//
|
||||
// Permission to copy, use, sell and distribute this software is granted
|
||||
// provided this copyright notice appears in all copies.
|
||||
// Permission to modify the code and to distribute modified code is granted
|
||||
// provided this copyright notice appears in all copies, and a notice
|
||||
// that the code was modified is included with the copyright notice.
|
||||
//
|
||||
// This software is provided "as is" without express or implied warranty,
|
||||
// and with no claim as to its suitability for any purpose.
|
||||
//
|
||||
// For more information, see http://www.boost.org
|
||||
|
||||
#ifndef BOOST_LAMBDA_BIND_HPP
|
||||
#define BOOST_LAMBDA_BIND_HPP
|
||||
|
||||
#include "boost/lambda/core.hpp"
|
||||
|
||||
#include "boost/lambda/detail/bind_functions.hpp"
|
||||
|
||||
//#include "bind/make_void.hpp"
|
||||
//#include "bind/ret.hpp"
|
||||
|
||||
#endif
|
||||
217
include/boost/lambda/casts.hpp
Normal file
217
include/boost/lambda/casts.hpp
Normal file
@@ -0,0 +1,217 @@
|
||||
// - casts.hpp -- BLambda Library -------------
|
||||
//
|
||||
// Copyright (C) 2000 Gary Powell (gary.powell@sierra.com)
|
||||
// Copyright (C) 1999, 2000 Jaakko Järvi (jaakko.jarvi@cs.utu.fi)
|
||||
//
|
||||
// Permission to copy, use, sell and distribute this software is granted
|
||||
// provided this copyright notice appears in all copies.
|
||||
// Permission to modify the code and to distribute modified code is granted
|
||||
// provided this copyright notice appears in all copies, and a notice
|
||||
// that the code was modified is included with the copyright notice.
|
||||
//
|
||||
// This software is provided "as is" without express or implied warranty,
|
||||
// and with no claim as to its suitability for any purpose.
|
||||
//
|
||||
// For more information, see http://www.boost.org
|
||||
|
||||
// -----------------------------------------------
|
||||
|
||||
#if !defined(BOOST_LAMBDA_CASTS_HPP)
|
||||
#define BOOST_LAMBDA_CASTS_HPP
|
||||
|
||||
#include <typeinfo>
|
||||
|
||||
namespace boost {
|
||||
namespace lambda {
|
||||
|
||||
template<class T> class cast_action;
|
||||
|
||||
template<class T> class static_cast_action;
|
||||
template<class T> class dynamic_cast_action;
|
||||
template<class T> class const_cast_action;
|
||||
template<class T> class reinterpret_cast_action;
|
||||
|
||||
class typeid_action;
|
||||
|
||||
// Cast actions
|
||||
template<class T> class cast_action<static_cast_action<T> >
|
||||
{
|
||||
public:
|
||||
template<class RET, class Arg1>
|
||||
static RET apply(Arg1 &a1) {
|
||||
return static_cast<RET>(a1);
|
||||
}
|
||||
};
|
||||
|
||||
template<class T> class cast_action<dynamic_cast_action<T> > {
|
||||
public:
|
||||
template<class RET, class Arg1>
|
||||
static RET apply(Arg1 &a1) {
|
||||
return dynamic_cast<RET>(a1);
|
||||
}
|
||||
};
|
||||
|
||||
template<class T> class cast_action<const_cast_action<T> > {
|
||||
public:
|
||||
template<class RET, class Arg1>
|
||||
static RET apply(Arg1 &a1) {
|
||||
return const_cast<RET>(a1);
|
||||
}
|
||||
};
|
||||
|
||||
template<class T> class cast_action<reinterpret_cast_action<T> > {
|
||||
public:
|
||||
template<class RET, class Arg1>
|
||||
static RET apply(Arg1 &a1) {
|
||||
return reinterpret_cast<RET>(a1);
|
||||
}
|
||||
};
|
||||
|
||||
class typeid_action {
|
||||
public:
|
||||
template<class RET, class Arg1>
|
||||
static RET apply(Arg1 &a1) {
|
||||
return typeid(a1);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// return types of casting lambda_functors (all "T" type.)
|
||||
|
||||
template<template <class T> class cast_type, class T, class Args, int Code, class Open>
|
||||
struct return_type<lambda_functor_args<action<1, cast_action< cast_type<T> > >, Args, Code>,
|
||||
Open>
|
||||
{
|
||||
typedef T const type;
|
||||
};
|
||||
|
||||
// return type of typeid_action
|
||||
|
||||
template<class Args, int Code, class Open>
|
||||
struct return_type<lambda_functor_args<action<1, typeid_action >, Args, Code>,
|
||||
Open>
|
||||
{
|
||||
typedef std::type_info const & type;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// the four cast & typeid overloads.
|
||||
|
||||
// static_cast
|
||||
template <class T, class Arg1>
|
||||
inline const lambda_functor<
|
||||
lambda_functor_args<
|
||||
action<1,
|
||||
cast_action<static_cast_action<T> >
|
||||
>,
|
||||
tuple<typename const_copy_argument <const Arg1>::type>,
|
||||
dig_arity<Arg1>::value
|
||||
>
|
||||
>
|
||||
ll_static_cast(const Arg1& a1) {
|
||||
return lambda_functor< lambda_functor_args<
|
||||
action<1,
|
||||
cast_action<static_cast_action<T> >
|
||||
>,
|
||||
tuple<typename const_copy_argument <const Arg1>::type>,
|
||||
dig_arity<Arg1>::value> >
|
||||
( tuple<typename const_copy_argument <const Arg1>::type>(a1));
|
||||
}
|
||||
|
||||
// dynamic_cast
|
||||
template <class T, class Arg1>
|
||||
inline const lambda_functor<
|
||||
lambda_functor_args<
|
||||
action<1,
|
||||
cast_action<dynamic_cast_action<T> >
|
||||
>,
|
||||
tuple<typename const_copy_argument <const Arg1>::type>,
|
||||
dig_arity<Arg1>::value
|
||||
>
|
||||
>
|
||||
ll_dynamic_cast(const Arg1& a1) {
|
||||
return lambda_functor< lambda_functor_args<
|
||||
action<1,
|
||||
cast_action<dynamic_cast_action<T> >
|
||||
>,
|
||||
tuple<typename const_copy_argument <const Arg1>::type>,
|
||||
dig_arity<Arg1>::value> >
|
||||
( tuple<typename const_copy_argument <const Arg1>::type>(a1));
|
||||
}
|
||||
|
||||
// const_cast
|
||||
template <class T, class Arg1>
|
||||
inline const lambda_functor<
|
||||
lambda_functor_args<
|
||||
action<1,
|
||||
cast_action<const_cast_action<T> >
|
||||
>,
|
||||
tuple<typename const_copy_argument <const Arg1>::type>,
|
||||
dig_arity<Arg1>::value
|
||||
>
|
||||
>
|
||||
ll_const_cast(const Arg1& a1) {
|
||||
return lambda_functor< lambda_functor_args<
|
||||
action<1,
|
||||
cast_action<const_cast_action<T> >
|
||||
>,
|
||||
tuple<typename const_copy_argument <const Arg1>::type>,
|
||||
dig_arity<Arg1>::value> >
|
||||
( tuple<typename const_copy_argument <const Arg1>::type>(a1));
|
||||
}
|
||||
|
||||
// reinterpret_cast
|
||||
template <class T, class Arg1>
|
||||
inline const lambda_functor<
|
||||
lambda_functor_args<
|
||||
action<1,
|
||||
cast_action<reinterpret_cast_action<T> >
|
||||
>,
|
||||
tuple<typename const_copy_argument <const Arg1>::type>,
|
||||
dig_arity<Arg1>::value
|
||||
>
|
||||
>
|
||||
ll_reinterpret_cast(const Arg1& a1) {
|
||||
return lambda_functor< lambda_functor_args<
|
||||
action<1,
|
||||
cast_action<reinterpret_cast_action<T> >
|
||||
>,
|
||||
tuple<typename const_copy_argument <const Arg1>::type>,
|
||||
dig_arity<Arg1>::value> >
|
||||
( tuple<typename const_copy_argument <const Arg1>::type>(a1));
|
||||
}
|
||||
|
||||
// typeid
|
||||
template <class Arg1>
|
||||
inline const lambda_functor<
|
||||
lambda_functor_args<
|
||||
action<1,
|
||||
typeid_action
|
||||
>,
|
||||
tuple<typename const_copy_argument <const Arg1>::type>,
|
||||
dig_arity<Arg1>::value
|
||||
>
|
||||
>
|
||||
ll_typeid(const Arg1& a1) {
|
||||
return lambda_functor< lambda_functor_args<
|
||||
action<1,
|
||||
typeid_action
|
||||
>,
|
||||
tuple<typename const_copy_argument <const Arg1>::type>,
|
||||
dig_arity<Arg1>::value> >
|
||||
( tuple<typename const_copy_argument <const Arg1>::type>(a1));
|
||||
}
|
||||
|
||||
|
||||
} // namespace lambda
|
||||
} // namespace boost
|
||||
|
||||
#endif
|
||||
216
include/boost/lambda/construct.hpp
Normal file
216
include/boost/lambda/construct.hpp
Normal file
@@ -0,0 +1,216 @@
|
||||
// - construct.hpp -- Lambda Library -------------
|
||||
//
|
||||
// Copyright (C) 2000 Gary Powell (gary.powell@sierra.com)
|
||||
// Copyright (C) 1999, 2000 Jaakko Järvi (jaakko.jarvi@cs.utu.fi)
|
||||
//
|
||||
// Permission to copy, use, sell and distribute this software is granted
|
||||
// provided this copyright notice appears in all copies.
|
||||
// Permission to modify the code and to distribute modified code is granted
|
||||
// provided this copyright notice appears in all copies, and a notice
|
||||
// that the code was modified is included with the copyright notice.
|
||||
//
|
||||
// This software is provided "as is" without express or implied warranty,
|
||||
// and with no claim as to its suitability for any purpose.
|
||||
//
|
||||
// For more information, see http://www.boost.org
|
||||
//
|
||||
// -----------------------------------------------
|
||||
|
||||
#if !defined(BOOST_LAMBDA_CONSTRUCT_HPP)
|
||||
#define BOOST_LAMBDA_CONSTRUCT_HPP
|
||||
|
||||
namespace boost {
|
||||
namespace lambda {
|
||||
|
||||
// constructor is used together with bind. constructor<A> creates a bindable
|
||||
// function object that passes its arguments forward to a constructor call
|
||||
// of type A
|
||||
|
||||
template<class T> struct constructor {
|
||||
|
||||
typedef T result_type;
|
||||
|
||||
T operator()() const {
|
||||
return T();
|
||||
}
|
||||
|
||||
template<class A1>
|
||||
T operator()(A1& a1) const {
|
||||
return T(a1);
|
||||
}
|
||||
|
||||
template<class A1, class A2>
|
||||
T operator()(A1& a1, A2& a2) const {
|
||||
return T(a1, a2);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3>
|
||||
T operator()(A1& a1, A2& a2, A3& a3) const {
|
||||
return T(a1, a2, a3);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3, class A4>
|
||||
T operator()(A1& a1, A2& a2, A3& a3, A4& a4) const {
|
||||
return T(a1, a2, a3, a4);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3, class A4, class A5>
|
||||
T operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5) const {
|
||||
return T(a1, a2, a3, a4, a5);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3, class A4, class A5, class A6>
|
||||
T operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6) const {
|
||||
return T(a1, a2, a3, a4, a5, a6);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3, class A4, class A5, class A6, class A7>
|
||||
T operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7) const {
|
||||
return T(a1, a2, a3, a4, a5, a6, a7);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
|
||||
T operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8) const {
|
||||
return T(a1, a2, a3, a4, a5, a6, a7, a8);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
|
||||
T operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9) const {
|
||||
return T(a1, a2, a3, a4, a5, a6, a7, a8, a9);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10>
|
||||
T operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10) const {
|
||||
return T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
// destructor funtion object
|
||||
struct destructor {
|
||||
|
||||
typedef void result_type;
|
||||
|
||||
template<class A1>
|
||||
void operator()(A1& a1) const {
|
||||
a1.operator~();
|
||||
}
|
||||
|
||||
template<class A1>
|
||||
void operator()(A1* a1) const {
|
||||
a1->~A1();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
// new_ptr is used together with bind.
|
||||
|
||||
// note: placement new is not supported
|
||||
|
||||
template<class T> struct new_ptr {
|
||||
|
||||
typedef T* result_type;
|
||||
|
||||
T* operator()() const {
|
||||
return new T();
|
||||
}
|
||||
|
||||
template<class A1>
|
||||
T* operator()(A1& a1) const {
|
||||
return new T(a1);
|
||||
}
|
||||
|
||||
template<class A1, class A2>
|
||||
T* operator()(A1& a1, A2& a2) const {
|
||||
return new T(a1, a2);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3>
|
||||
T* operator()(A1& a1, A2& a2, A3& a3) const {
|
||||
return new T(a1, a2, a3);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3, class A4>
|
||||
T* operator()(A1& a1, A2& a2, A3& a3, A4& a4) const {
|
||||
return new T(a1, a2, a3, a4);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3, class A4, class A5>
|
||||
T* operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5) const {
|
||||
return new T(a1, a2, a3, a4, a5);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3, class A4, class A5, class A6>
|
||||
T* operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6) const {
|
||||
return new T(a1, a2, a3, a4, a5, a6);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3, class A4, class A5, class A6, class A7>
|
||||
T* operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7) const {
|
||||
return new T(a1, a2, a3, a4, a5, a6, a7);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
|
||||
T* operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8) const {
|
||||
return new T(a1, a2, a3, a4, a5, a6, a7, a8);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
|
||||
T* operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9) const {
|
||||
return new T(a1, a2, a3, a4, a5, a6, a7, a8, a9);
|
||||
}
|
||||
|
||||
template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10>
|
||||
T* operator()(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10) const {
|
||||
return new T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// delete_ptr return void
|
||||
|
||||
struct delete_ptr {
|
||||
|
||||
typedef void result_type;
|
||||
|
||||
template <class A1>
|
||||
void operator()(A1& a1) const {
|
||||
delete a1;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
// new_array is used together with bind.W
|
||||
|
||||
template<class T> struct new_array {
|
||||
|
||||
typedef T* result_type;
|
||||
|
||||
T* operator()(int size) const {
|
||||
return new T[size];
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// delete_ptr return void
|
||||
|
||||
struct delete_array {
|
||||
|
||||
typedef void result_type;
|
||||
|
||||
template <class A1>
|
||||
void operator()(A1& a1) const {
|
||||
delete[] a1;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace lambda
|
||||
} // namespace boost
|
||||
|
||||
#endif
|
||||
27
include/boost/lambda/control_structures.hpp
Normal file
27
include/boost/lambda/control_structures.hpp
Normal file
@@ -0,0 +1,27 @@
|
||||
// -- control_structures.hpp -- Boost Lambda Library --------------------------
|
||||
// Copyright (C) 1999, 2000 Jaakko Järvi (jaakko.jarvi@cs.utu.fi)
|
||||
//
|
||||
// Permission to copy, use, sell and distribute this software is granted
|
||||
// provided this copyright notice appears in all copies.
|
||||
// Permission to modify the code and to distribute modified code is granted
|
||||
// provided this copyright notice appears in all copies, and a notice
|
||||
// that the code was modified is included with the copyright notice.
|
||||
//
|
||||
// This software is provided "as is" without express or implied warranty,
|
||||
// and with no claim as to its suitability for any purpose.
|
||||
//
|
||||
// For more information, see www.boost.org
|
||||
|
||||
#ifndef BOOST_LAMBDA_CONTROL_STRUCTURES_HPP
|
||||
#define BOOST_LAMBDA_CONTROL_STRUCTURES_HPP
|
||||
|
||||
|
||||
#include "boost/lambda/core.hpp"
|
||||
|
||||
// Arithmetic type promotion needed for if_then_else_return
|
||||
#include "boost/lambda/detail/operator_actions.hpp"
|
||||
#include "boost/lambda/detail/operator_return_type_traits.hpp"
|
||||
|
||||
#include "boost/lambda/detail/control_structures_impl.hpp"
|
||||
#include "boost/lambda/detail/switch.hpp"
|
||||
#endif
|
||||
70
include/boost/lambda/core.hpp
Normal file
70
include/boost/lambda/core.hpp
Normal file
@@ -0,0 +1,70 @@
|
||||
// -- core.hpp -- Boost Lambda Library -------------------------------------
|
||||
//
|
||||
// Includes the core of LL, without any real features for client:
|
||||
//
|
||||
// tuples, lambda functors, return type deduction templates,
|
||||
// argument substitution mechanism (select functions)
|
||||
//
|
||||
// Some functionality comes as well:
|
||||
// Assignment and subscript operators, as well as function
|
||||
// call operator for placeholder variables.
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
#ifndef BOOST_LAMBDA_CORE_HPP
|
||||
#define BOOST_LAMBDA_CORE_HPP
|
||||
|
||||
#include "boost/type_traits/transform_traits.hpp"
|
||||
#include "boost/type_traits/cv_traits.hpp"
|
||||
|
||||
#include "boost/tuple/tuple.hpp"
|
||||
|
||||
// inject some of the tuple names into lambda
|
||||
namespace boost {
|
||||
namespace lambda {
|
||||
|
||||
using ::boost::tuples::tuple;
|
||||
using ::boost::tuples::null_type;
|
||||
|
||||
} // lambda
|
||||
} // boost
|
||||
|
||||
#include "boost/lambda/detail/lambda_config.hpp"
|
||||
#include "boost/lambda/detail/lambda_fwd.hpp"
|
||||
|
||||
#include "boost/lambda/detail/lambda_traits.hpp"
|
||||
|
||||
#include "boost/lambda/detail/arity_code.hpp"
|
||||
|
||||
#include "boost/lambda/detail/actions.hpp"
|
||||
#include "boost/lambda/detail/function_adaptors.hpp"
|
||||
#include "boost/lambda/detail/return_type_traits.hpp"
|
||||
|
||||
#include "boost/lambda/detail/select_functions.hpp"
|
||||
|
||||
#include "boost/lambda/detail/lambda_functor_base.hpp"
|
||||
|
||||
#include "boost/lambda/detail/lambda_functors.hpp"
|
||||
|
||||
#include "boost/lambda/detail/ret.hpp"
|
||||
#include "boost/lambda/detail/make_void.hpp"
|
||||
|
||||
namespace boost {
|
||||
namespace lambda {
|
||||
|
||||
namespace {
|
||||
|
||||
boost::lambda::free1_type free1;
|
||||
boost::lambda::free2_type free2;
|
||||
boost::lambda::free3_type free3;
|
||||
|
||||
boost::lambda::free1_type& _1 = free1;
|
||||
boost::lambda::free2_type& _2 = free2;
|
||||
boost::lambda::free3_type& _3 = free3;
|
||||
// _1, _2, ... naming scheme by Peter Dimov
|
||||
} // unnamed
|
||||
|
||||
} // lambda
|
||||
} // boost
|
||||
|
||||
|
||||
#endif //BOOST_LAMBDA_CORE_HPP
|
||||
1723
include/boost/lambda/exceptions.hpp
Normal file
1723
include/boost/lambda/exceptions.hpp
Normal file
File diff suppressed because it is too large
Load Diff
32
include/boost/lambda/lambda.hpp
Normal file
32
include/boost/lambda/lambda.hpp
Normal file
@@ -0,0 +1,32 @@
|
||||
// -- lambda.hpp -- Boost Lambda Library -----------------------------------
|
||||
// Copyright (C) 1999, 2000 Jaakko Järvi (jaakko.jarvi@cs.utu.fi)
|
||||
//
|
||||
// Permission to copy, use, sell and distribute this software is granted
|
||||
// provided this copyright notice appears in all copies.
|
||||
// Permission to modify the code and to distribute modified code is granted
|
||||
// provided this copyright notice appears in all copies, and a notice
|
||||
// that the code was modified is included with the copyright notice.
|
||||
//
|
||||
// This software is provided "as is" without express or implied warranty,
|
||||
// and with no claim as to its suitability for any purpose.
|
||||
//
|
||||
// For more information, see http://lambda.cs.utu.fi
|
||||
|
||||
#ifndef BOOST_LAMBDA_LAMBDA_HPP
|
||||
#define BOOST_LAMBDA_LAMBDA_HPP
|
||||
|
||||
|
||||
#include "boost/lambda/core.hpp"
|
||||
|
||||
#include "boost/lambda/detail/operator_actions.hpp"
|
||||
#include "boost/lambda/detail/operator_lambda_functor_base.hpp"
|
||||
#include "boost/lambda/detail/operator_return_type_traits.hpp"
|
||||
|
||||
#ifdef BOOST_NO_FORWARD_DECLARADED_TEMPLATES_AS_TEMPLATE_TEMPLATE_PARAMETERS
|
||||
#include <istream>
|
||||
#include <ostream>
|
||||
#endif
|
||||
|
||||
#include "boost/lambda/detail/operators.hpp"
|
||||
|
||||
#endif
|
||||
158
include/boost/lambda/memory.hpp
Normal file
158
include/boost/lambda/memory.hpp
Normal file
@@ -0,0 +1,158 @@
|
||||
// -- memory.hpp -- Lambda Library -----------------------------------
|
||||
|
||||
// Copyright (C) 2000 Gary Powell (gary.powell@sierra.com)
|
||||
// Copyright (C) 1999, 2000 Jaakko Järvi (jaakko.jarvi@cs.utu.fi)
|
||||
//
|
||||
// Permission to copy, use, sell and distribute this software is granted
|
||||
// provided this copyright notice appears in all copies.
|
||||
// Permission to modify the code and to distribute modified code is granted
|
||||
// provided this copyright notice appears in all copies, and a notice
|
||||
// that the code was modified is included with the copyright notice.
|
||||
//
|
||||
// This software is provided "as is" without express or implied warranty,
|
||||
// and with no claim as to its suitability for any purpose.
|
||||
//
|
||||
// For more information, see http://lambda.cs.utu.fi
|
||||
|
||||
// revision history
|
||||
|
||||
// 11 09 00 added details namespace (GWP)
|
||||
// 10 02 00 Reworked and changed so that the type of the
|
||||
// object to be 'newed' is given
|
||||
// as a explicitely specified template parameter, e.g.:
|
||||
// new_ptr<Foo>(a, b, c)() returns new Foo(a, b, c) (JJ)
|
||||
// 10 02 00 Initial version (GWP)
|
||||
//
|
||||
// Delayed memory creation and deletion
|
||||
|
||||
|
||||
#if !defined(MEMORY_HPP)
|
||||
#define MEMORY_HPP
|
||||
|
||||
#include "ll/details/ll_defines_on.hpp"
|
||||
#include "ll_advanced/details/ll_memory.hpp"
|
||||
|
||||
namespace boost {
|
||||
namespace lambda {
|
||||
|
||||
// new_ptr bind functions.
|
||||
template <class T>
|
||||
inline const ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<0, details::new_ptr_action<0, T> >, ::boost::tuples::nil, ::boost::bind::details::combine_arities<>::value> >
|
||||
new_ptr() {
|
||||
return ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<0, details::new_ptr_action<0, T> >, ::boost::tuples::nil, ::boost::bind::details::combine_arities<>::value> >
|
||||
( ::boost::tuples::nil() );
|
||||
}
|
||||
|
||||
template <class T, class Arg1>
|
||||
inline const ::boost::bind::details::lambda_functor<
|
||||
::boost::bind::details::lambda_functor_args<
|
||||
::boost::bind::details::action<
|
||||
1,
|
||||
details::new_ptr_action<1, T>
|
||||
>,
|
||||
::boost::tuples::tuple<typename
|
||||
LL_DEFAULT_BIND_ARGUMENT_CONVERSION
|
||||
<
|
||||
LL_CONST Arg1>::type>,
|
||||
::boost::bind::details::combine_arities<Arg1>::value
|
||||
>
|
||||
>
|
||||
new_ptr(LL_CONST Arg1& a1) {
|
||||
return ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<1, details::new_ptr_action<1, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type>, ::boost::bind::details::combine_arities<Arg1>::value> >
|
||||
( ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type>(a1));
|
||||
}
|
||||
|
||||
|
||||
template <class T, class Arg1, class Arg2>
|
||||
inline const ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<2, details::new_ptr_action<2, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2>::value> >
|
||||
new_ptr(LL_CONST Arg1& a1, LL_CONST Arg2& a2) {
|
||||
return ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<2, details::new_ptr_action<2, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2>::value> >
|
||||
( ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type>(a1, a2));
|
||||
}
|
||||
|
||||
template <class T, class Arg1, class Arg2, class Arg3>
|
||||
inline const ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<3, details::new_ptr_action<3, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3>::value> >
|
||||
new_ptr(LL_CONST Arg1& a1, LL_CONST Arg2& a2, LL_CONST Arg3& a3) {
|
||||
return ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<3, details::new_ptr_action<3, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3>::value> >
|
||||
( ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type>(a1, a2, a3));
|
||||
}
|
||||
|
||||
template <class T, class Arg1, class Arg2, class Arg3, class Arg4>
|
||||
inline const ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<4, details::new_ptr_action<4, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3, Arg4>::value> >
|
||||
new_ptr(LL_CONST Arg1& a1, LL_CONST Arg2& a2, LL_CONST Arg3& a3, LL_CONST Arg4& a4) {
|
||||
return ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<4, details::new_ptr_action<4, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3, Arg4>::value> >
|
||||
( ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type>(a1, a2, a3, a4));
|
||||
}
|
||||
|
||||
template <class T, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5>
|
||||
inline const ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<5, details::new_ptr_action<5, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3, Arg4, Arg5>::value> >
|
||||
new_ptr(LL_CONST Arg1& a1, LL_CONST Arg2& a2, LL_CONST Arg3& a3, LL_CONST Arg4& a4, LL_CONST Arg5& a5) {
|
||||
return ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<5, details::new_ptr_action<5, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3, Arg4, Arg5>::value> >
|
||||
( ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type>(a1, a2, a3, a4, a5));
|
||||
}
|
||||
|
||||
template <class T, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6>
|
||||
inline const ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<6, details::new_ptr_action<6, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6>::value> >
|
||||
new_ptr(LL_CONST Arg1& a1, LL_CONST Arg2& a2, LL_CONST Arg3& a3, LL_CONST Arg4& a4, LL_CONST Arg5& a5, LL_CONST Arg6& a6) {
|
||||
return ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<6, details::new_ptr_action<6, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6>::value> >
|
||||
( ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type>(a1, a2, a3, a4, a5, a6));
|
||||
}
|
||||
|
||||
template <class T, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7>
|
||||
inline const ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<7, details::new_ptr_action<7, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg7>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7>::value> >
|
||||
new_ptr(LL_CONST Arg1& a1, LL_CONST Arg2& a2, LL_CONST Arg3& a3, LL_CONST Arg4& a4, LL_CONST Arg5& a5, LL_CONST Arg6& a6, LL_CONST Arg7& a7) {
|
||||
return ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<7, details::new_ptr_action<7, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg7>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7>::value> >
|
||||
( ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg7>::type>(a1, a2, a3, a4, a5, a6, a7));
|
||||
}
|
||||
|
||||
template <class T, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Arg8>
|
||||
inline const ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<8, details::new_ptr_action<8, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg7>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg8>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8>::value> >
|
||||
new_ptr(LL_CONST Arg1& a1, LL_CONST Arg2& a2, LL_CONST Arg3& a3, LL_CONST Arg4& a4, LL_CONST Arg5& a5, LL_CONST Arg6& a6, LL_CONST Arg7& a7, LL_CONST Arg8& a8) {
|
||||
return ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<8, details::new_ptr_action<8, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg7>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg8>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8>::value> >
|
||||
( ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg7>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg8>::type>(a1, a2, a3, a4, a5, a6, a7, a8));
|
||||
}
|
||||
|
||||
template <class T, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Arg8, class Arg9>
|
||||
inline const ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<9, details::new_ptr_action<9, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg7>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg8>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg9>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9>::value> >
|
||||
new_ptr(LL_CONST Arg1& a1, LL_CONST Arg2& a2, LL_CONST Arg3& a3, LL_CONST Arg4& a4, LL_CONST Arg5& a5, LL_CONST Arg6& a6, LL_CONST Arg7& a7, LL_CONST Arg8& a8, LL_CONST Arg9& a9) {
|
||||
return ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<9, details::new_ptr_action<9, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg7>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg8>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg9>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9>::value> >
|
||||
( ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg7>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg8>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg9>::type>(a1, a2, a3, a4, a5, a6, a7, a8, a9));
|
||||
}
|
||||
|
||||
template <class T, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Arg8, class Arg9, class Arg10>
|
||||
inline const ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<10, details::new_ptr_action<10, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg7>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg8>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg9>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg10>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10>::value> >
|
||||
new_ptr(LL_CONST Arg1& a1, LL_CONST Arg2& a2, LL_CONST Arg3& a3, LL_CONST Arg4& a4, LL_CONST Arg5& a5, LL_CONST Arg6& a6, LL_CONST Arg7& a7, LL_CONST Arg8& a8, LL_CONST Arg9& a9, LL_CONST Arg10& a10) {
|
||||
return ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<10, details::new_ptr_action<10, T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg7>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg8>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg9>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg10>::type>, ::boost::bind::details::combine_arities<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10>::value> >
|
||||
( ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg1>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg2>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg3>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg4>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg5>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg6>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg7>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg8>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg9>::type, typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION <LL_CONST Arg10>::type>(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10));
|
||||
}
|
||||
|
||||
// new_array bind function.
|
||||
template <class T, class Arg1>
|
||||
inline const ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<1, details::new_array_action<T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION<LL_CONST Arg1>::type>, ::boost::bind::details::combine_arities<Arg1>::value> >
|
||||
new_array(LL_CONST Arg1& a1) {
|
||||
return ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<1, details::new_array_action<T> >, ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION<LL_CONST Arg1>::type>, ::boost::bind::details::combine_arities<Arg1>::value> >
|
||||
( ::boost::tuples::tuple<typename LL_DEFAULT_BIND_ARGUMENT_CONVERSION<LL_CONST Arg1>::type>(a1));
|
||||
}
|
||||
|
||||
// delete_ptr bind function.
|
||||
template <class Arg1>
|
||||
inline const ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<1, details::delete_action<details::delete_ptr_action> >, ::boost::tuples::tuple<typename ::boost::tuples::convert_to_ref_by_default <Arg1>::type>, ::boost::bind::details::combine_arities<Arg1>::value> >
|
||||
delete_ptr(Arg1& a1) {
|
||||
return ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<1, details::delete_action<details::delete_ptr_action> >, ::boost::tuples::tuple<typename ::boost::tuples::convert_to_ref_by_default <Arg1>::type>, ::boost::bind::details::combine_arities<Arg1>::value> >
|
||||
( ::boost::tuples::tuple<typename ::boost::tuples::convert_to_ref_by_default <Arg1>::type>(a1));
|
||||
}
|
||||
|
||||
// delete_array bind function.
|
||||
template <class Arg1>
|
||||
inline const ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<1, details::delete_action<details::delete_array_action> >, ::boost::tuples::tuple<typename ::boost::tuples::convert_to_ref_by_default <Arg1>::type>, ::boost::bind::details::combine_arities<Arg1>::value> >
|
||||
delete_array(Arg1& a1) {
|
||||
return ::boost::bind::details::lambda_functor< ::boost::bind::details::lambda_functor_args< ::boost::bind::details::action<1, details::delete_action<details::delete_array_action> >, ::boost::tuples::tuple<typename ::boost::tuples::convert_to_ref_by_default <Arg1>::type>, ::boost::bind::details::combine_arities<Arg1>::value> >
|
||||
( ::boost::tuples::tuple<typename ::boost::tuples::convert_to_ref_by_default <Arg1>::type>(a1));
|
||||
}
|
||||
|
||||
} // namespace lambda
|
||||
} // namespace boost
|
||||
|
||||
#include "ll/details/ll_defines_off.hpp"
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user