| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | // Copyright Takatoshi Kondo 2020//// 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_BROKER_PROPERTY_UTIL_HPP)#define MQTT_BROKER_PROPERTY_UTIL_HPP#include <mqtt/config.hpp>#include <mqtt/broker/broker_namespace.hpp>#include <mqtt/optional.hpp>#include <mqtt/property_variant.hpp>#include <mqtt/visitor_util.hpp>MQTT_BROKER_NS_BEGINtemplate <typename T>inline optional<T> get_property(v5::properties const& props) {    optional<T> result;    auto visitor = make_lambda_visitor(        [&result](T const& t) { result = t; },        [](auto const&) { }    );    for (auto const& p : props) {        MQTT_NS::visit(visitor, p);    }    return result;}template <typename T>inline void set_property(v5::properties& props, T&& v) {    auto visitor = make_lambda_visitor(        [&v](T& t) mutable { t = std::forward<T>(v); },        [](auto&) { }    );    for (auto& p : props) {        MQTT_NS::visit(visitor, p);    }}MQTT_BROKER_NS_END#endif // MQTT_BROKER_PROPERTY_UTIL_HPP
 |