/*============================================================================= Copyright (c) 2014 Joel de Guzman Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #if !defined(BOOST_SPIRIT_X3_LAMBDA_VISITOR_MAY_19_2014_1116AM) #define BOOST_SPIRIT_X3_LAMBDA_VISITOR_MAY_19_2014_1116AM namespace boost { namespace spirit { namespace x3 { template struct lambda_visitor; template struct lambda_visitor : F, lambda_visitor { typedef lambda_visitor base_type; using F::operator(); using base_type::operator(); lambda_visitor(F f, Lambdas... lambdas) : F(f), base_type(lambdas...) {} }; template struct lambda_visitor : F { typedef RT result_type; using F::operator(); lambda_visitor(F f) : F(f) {} }; template struct lambda_visitor { typedef RT result_type; }; template lambda_visitor make_lambda_visitor(Lambdas... lambdas) { return { lambdas... }; } }}} #endif