Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:43:27

0001 // Copyright Daniel Wallin 2006.
0002 // Distributed under the Boost Software License, Version 1.0.
0003 // (See accompanying file LICENSE_1_0.txt or copy at
0004 // http://www.boost.org/LICENSE_1_0.txt)
0005 
0006 #ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FUNCTION_FORWARD_MATCH_HPP
0007 #define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FUNCTION_FORWARD_MATCH_HPP
0008 
0009 #include <boost/parameter/config.hpp>
0010 
0011 #if !defined(BOOST_NO_SFINAE) && \
0012     !BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x592))
0013 
0014 #include <boost/parameter/aux_/pp_impl/match.hpp>
0015 #include <boost/preprocessor/repetition/enum_trailing_params.hpp>
0016 
0017 // Expands to an extra argument that is well-formed
0018 // iff all Args... satisfy the requirements set by params.
0019 #define BOOST_PARAMETER_FUNCTION_FORWARD_MATCH(params, n, prefix)            \
0020   , typename ::boost::parameter::aux::match<                                 \
0021         params BOOST_PP_ENUM_TRAILING_PARAMS(n, prefix)                      \
0022     >::type = params()
0023 /**/
0024 
0025 #define BOOST_PARAMETER_FUNCTION_FORWARD_MATCH_Z(z, params, n, prefix)       \
0026   , typename ::boost::parameter::aux::match<                                 \
0027         params BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, prefix)                 \
0028     >::type = params()
0029 /**/
0030 
0031 #else   // SFINAE/Borland workarounds needed.
0032 
0033 #define BOOST_PARAMETER_FUNCTION_FORWARD_MATCH(params, n, prefix)            \
0034   , params = params()
0035 /**/
0036 
0037 #define BOOST_PARAMETER_FUNCTION_FORWARD_MATCH_Z(z, params, n, prefix)       \
0038   , params = params()
0039 /**/
0040 
0041 #endif
0042 #endif  // include guard
0043