epoc32/include/stdapis/boost/lambda/core.hpp
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
williamr@2
     1
// -- core.hpp -- Boost Lambda Library -------------------------------------
williamr@2
     2
//
williamr@2
     3
// Copyright (C) 2000 Gary Powell (powellg@amazon.com)
williamr@2
     4
// Copyright (C) 1999, 2000 Jaakko Järvi (jaakko.jarvi@cs.utu.fi)
williamr@2
     5
//
williamr@2
     6
// Distributed under the Boost Software License, Version 1.0. (See
williamr@2
     7
// accompanying file LICENSE_1_0.txt or copy at
williamr@2
     8
// http://www.boost.org/LICENSE_1_0.txt)
williamr@2
     9
//
williamr@2
    10
// For more information, see www.boost.org
williamr@2
    11
// 
williamr@2
    12
// Includes the core of LL, without any real features for client:
williamr@2
    13
// 
williamr@2
    14
// tuples, lambda functors, return type deduction templates,
williamr@2
    15
// argument substitution mechanism (select functions)
williamr@2
    16
// 
williamr@2
    17
// Some functionality comes as well:
williamr@2
    18
// Assignment and subscript operators, as well as function
williamr@2
    19
// call operator for placeholder variables.
williamr@2
    20
// -------------------------------------------------------------------------
williamr@2
    21
williamr@2
    22
#ifndef BOOST_LAMBDA_CORE_HPP
williamr@2
    23
#define BOOST_LAMBDA_CORE_HPP
williamr@2
    24
williamr@2
    25
#include "boost/type_traits/transform_traits.hpp"
williamr@2
    26
#include "boost/type_traits/cv_traits.hpp"
williamr@2
    27
williamr@2
    28
#include "boost/tuple/tuple.hpp"
williamr@2
    29
williamr@2
    30
// inject some of the tuple names into lambda 
williamr@2
    31
namespace boost {
williamr@2
    32
namespace lambda {
williamr@2
    33
williamr@2
    34
using ::boost::tuples::tuple;
williamr@2
    35
using ::boost::tuples::null_type;
williamr@2
    36
williamr@2
    37
} // lambda
williamr@2
    38
} // boost
williamr@2
    39
williamr@2
    40
#include "boost/lambda/detail/lambda_config.hpp"
williamr@2
    41
#include "boost/lambda/detail/lambda_fwd.hpp"
williamr@2
    42
williamr@2
    43
#include "boost/lambda/detail/arity_code.hpp"
williamr@2
    44
#include "boost/lambda/detail/actions.hpp"
williamr@2
    45
williamr@2
    46
#include "boost/lambda/detail/lambda_traits.hpp"
williamr@2
    47
williamr@2
    48
#include "boost/lambda/detail/function_adaptors.hpp"
williamr@2
    49
#include "boost/lambda/detail/return_type_traits.hpp"
williamr@2
    50
williamr@2
    51
#include "boost/lambda/detail/select_functions.hpp"
williamr@2
    52
williamr@2
    53
#include "boost/lambda/detail/lambda_functor_base.hpp"
williamr@2
    54
williamr@2
    55
#include "boost/lambda/detail/lambda_functors.hpp"
williamr@2
    56
williamr@2
    57
#include "boost/lambda/detail/ret.hpp"
williamr@2
    58
williamr@2
    59
namespace boost {
williamr@2
    60
namespace lambda {
williamr@2
    61
williamr@2
    62
namespace {
williamr@2
    63
williamr@2
    64
  // These are constants types and need to be initialised
williamr@2
    65
  boost::lambda::placeholder1_type free1 = boost::lambda::placeholder1_type();
williamr@2
    66
  boost::lambda::placeholder2_type free2 = boost::lambda::placeholder2_type();
williamr@2
    67
  boost::lambda::placeholder3_type free3 = boost::lambda::placeholder3_type();
williamr@2
    68
williamr@2
    69
  boost::lambda::placeholder1_type& _1 = free1;
williamr@2
    70
  boost::lambda::placeholder2_type& _2 = free2;
williamr@2
    71
  boost::lambda::placeholder3_type& _3 = free3;
williamr@2
    72
  // _1, _2, ... naming scheme by Peter Dimov
williamr@2
    73
} // unnamed
williamr@2
    74
   
williamr@2
    75
} // lambda
williamr@2
    76
} // boost
williamr@2
    77
   
williamr@2
    78
   
williamr@2
    79
#endif //BOOST_LAMBDA_CORE_HPP