epoc32/include/stdapis/boost/lambda/core.hpp
branchSymbian2
changeset 2 2fe1408b6811
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/epoc32/include/stdapis/boost/lambda/core.hpp	Tue Mar 16 16:12:26 2010 +0000
     1.3 @@ -0,0 +1,79 @@
     1.4 +// -- core.hpp -- Boost Lambda Library -------------------------------------
     1.5 +//
     1.6 +// Copyright (C) 2000 Gary Powell (powellg@amazon.com)
     1.7 +// Copyright (C) 1999, 2000 Jaakko Järvi (jaakko.jarvi@cs.utu.fi)
     1.8 +//
     1.9 +// Distributed under the Boost Software License, Version 1.0. (See
    1.10 +// accompanying file LICENSE_1_0.txt or copy at
    1.11 +// http://www.boost.org/LICENSE_1_0.txt)
    1.12 +//
    1.13 +// For more information, see www.boost.org
    1.14 +// 
    1.15 +// Includes the core of LL, without any real features for client:
    1.16 +// 
    1.17 +// tuples, lambda functors, return type deduction templates,
    1.18 +// argument substitution mechanism (select functions)
    1.19 +// 
    1.20 +// Some functionality comes as well:
    1.21 +// Assignment and subscript operators, as well as function
    1.22 +// call operator for placeholder variables.
    1.23 +// -------------------------------------------------------------------------
    1.24 +
    1.25 +#ifndef BOOST_LAMBDA_CORE_HPP
    1.26 +#define BOOST_LAMBDA_CORE_HPP
    1.27 +
    1.28 +#include "boost/type_traits/transform_traits.hpp"
    1.29 +#include "boost/type_traits/cv_traits.hpp"
    1.30 +
    1.31 +#include "boost/tuple/tuple.hpp"
    1.32 +
    1.33 +// inject some of the tuple names into lambda 
    1.34 +namespace boost {
    1.35 +namespace lambda {
    1.36 +
    1.37 +using ::boost::tuples::tuple;
    1.38 +using ::boost::tuples::null_type;
    1.39 +
    1.40 +} // lambda
    1.41 +} // boost
    1.42 +
    1.43 +#include "boost/lambda/detail/lambda_config.hpp"
    1.44 +#include "boost/lambda/detail/lambda_fwd.hpp"
    1.45 +
    1.46 +#include "boost/lambda/detail/arity_code.hpp"
    1.47 +#include "boost/lambda/detail/actions.hpp"
    1.48 +
    1.49 +#include "boost/lambda/detail/lambda_traits.hpp"
    1.50 +
    1.51 +#include "boost/lambda/detail/function_adaptors.hpp"
    1.52 +#include "boost/lambda/detail/return_type_traits.hpp"
    1.53 +
    1.54 +#include "boost/lambda/detail/select_functions.hpp"
    1.55 +
    1.56 +#include "boost/lambda/detail/lambda_functor_base.hpp"
    1.57 +
    1.58 +#include "boost/lambda/detail/lambda_functors.hpp"
    1.59 +
    1.60 +#include "boost/lambda/detail/ret.hpp"
    1.61 +
    1.62 +namespace boost {
    1.63 +namespace lambda {
    1.64 +
    1.65 +namespace {
    1.66 +
    1.67 +  // These are constants types and need to be initialised
    1.68 +  boost::lambda::placeholder1_type free1 = boost::lambda::placeholder1_type();
    1.69 +  boost::lambda::placeholder2_type free2 = boost::lambda::placeholder2_type();
    1.70 +  boost::lambda::placeholder3_type free3 = boost::lambda::placeholder3_type();
    1.71 +
    1.72 +  boost::lambda::placeholder1_type& _1 = free1;
    1.73 +  boost::lambda::placeholder2_type& _2 = free2;
    1.74 +  boost::lambda::placeholder3_type& _3 = free3;
    1.75 +  // _1, _2, ... naming scheme by Peter Dimov
    1.76 +} // unnamed
    1.77 +   
    1.78 +} // lambda
    1.79 +} // boost
    1.80 +   
    1.81 +   
    1.82 +#endif //BOOST_LAMBDA_CORE_HPP