Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:39:09

0001 // -- core.hpp -- Boost Lambda Library -------------------------------------
0002 //
0003 // Copyright (C) 2000 Gary Powell (powellg@amazon.com)
0004 // Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
0005 //
0006 // Distributed under the Boost Software License, Version 1.0. (See
0007 // accompanying file LICENSE_1_0.txt or copy at
0008 // http://www.boost.org/LICENSE_1_0.txt)
0009 //
0010 // For more information, see www.boost.org
0011 // 
0012 // Includes the core of LL, without any real features for client:
0013 // 
0014 // tuples, lambda functors, return type deduction templates,
0015 // argument substitution mechanism (select functions)
0016 // 
0017 // Some functionality comes as well:
0018 // Assignment and subscript operators, as well as function
0019 // call operator for placeholder variables.
0020 // -------------------------------------------------------------------------
0021 
0022 #ifndef BOOST_LAMBDA_CORE_HPP
0023 #define BOOST_LAMBDA_CORE_HPP
0024 
0025 #include "boost/config.hpp"
0026 
0027 #include "boost/type_traits/transform_traits.hpp"
0028 #include "boost/type_traits/cv_traits.hpp"
0029 
0030 #include "boost/tuple/tuple.hpp"
0031 
0032 // inject some of the tuple names into lambda 
0033 namespace boost {
0034 namespace lambda {
0035 
0036 using ::boost::tuples::tuple;
0037 using ::boost::tuples::null_type;
0038 
0039 } // lambda
0040 } // boost
0041 
0042 #include "boost/lambda/detail/lambda_config.hpp"
0043 #include "boost/lambda/detail/lambda_fwd.hpp"
0044 
0045 #include "boost/lambda/detail/arity_code.hpp"
0046 #include "boost/lambda/detail/actions.hpp"
0047 
0048 #include "boost/lambda/detail/lambda_traits.hpp"
0049 
0050 #include "boost/lambda/detail/function_adaptors.hpp"
0051 #include "boost/lambda/detail/return_type_traits.hpp"
0052 
0053 #include "boost/lambda/detail/select_functions.hpp"
0054 
0055 #include "boost/lambda/detail/lambda_functor_base.hpp"
0056 
0057 #include "boost/lambda/detail/lambda_functors.hpp"
0058 
0059 #include "boost/lambda/detail/ret.hpp"
0060 
0061 namespace boost {
0062 namespace lambda {
0063 
0064 namespace {
0065 
0066   // These are constants types and need to be initialised
0067   boost::lambda::placeholder1_type free1 = boost::lambda::placeholder1_type();
0068   boost::lambda::placeholder2_type free2 = boost::lambda::placeholder2_type();
0069   boost::lambda::placeholder3_type free3 = boost::lambda::placeholder3_type();
0070 
0071   boost::lambda::placeholder1_type& BOOST_ATTRIBUTE_UNUSED _1 = free1;
0072   boost::lambda::placeholder2_type& BOOST_ATTRIBUTE_UNUSED _2 = free2;
0073   boost::lambda::placeholder3_type& BOOST_ATTRIBUTE_UNUSED _3 = free3;
0074   // _1, _2, ... naming scheme by Peter Dimov
0075 } // unnamed
0076    
0077 } // lambda
0078 } // boost
0079    
0080    
0081 #endif //BOOST_LAMBDA_CORE_HPP