| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | 
							- // Copyright Takatoshi Kondo 2017
 
- //
 
- // 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(MQTT_VISITOR_UTIL_HPP)
 
- #define MQTT_VISITOR_UTIL_HPP
 
- #include <mqtt/namespace.hpp>
 
- #include <mqtt/variant.hpp>
 
- namespace MQTT_NS {
 
- template <typename... Lambdas>
 
- struct lambda_visitor;
 
- template <typename Lambda1, typename... Lambdas>
 
- struct lambda_visitor<Lambda1, Lambdas...>
 
-     : Lambda1, lambda_visitor<Lambdas...> {
 
-     using Lambda1::operator();
 
-     using lambda_visitor<Lambdas...>::operator();
 
-     lambda_visitor(Lambda1 lambda1, Lambdas... lambdas)
 
-         : Lambda1(lambda1), lambda_visitor<Lambdas...>(lambdas...) {}
 
- };
 
- template <typename Lambda1>
 
- struct lambda_visitor<Lambda1> : Lambda1 {
 
-     using Lambda1::operator();
 
-     lambda_visitor(Lambda1 lambda1)
 
-         : Lambda1(lambda1) {}
 
- };
 
- template <typename... Lambdas>
 
- inline lambda_visitor<Lambdas...> make_lambda_visitor(Lambdas&&... lambdas) {
 
-     return { std::forward<Lambdas>(lambdas)... };
 
- }
 
- } // namespace MQTT_NS
 
- #endif // MQTT_VISITOR_UTIL_HPP
 
 
  |