8 #ifndef BOOST_GIL_EXTENSION_DYNAMIC_IMAGE_APPLY_OPERATION_HPP     9 #define BOOST_GIL_EXTENSION_DYNAMIC_IMAGE_APPLY_OPERATION_HPP    11 #include <boost/variant2/variant.hpp>    13 namespace boost { 
namespace gil {
    17 template <
typename Variant1, 
typename Visitor>
    20 #if defined(BOOST_NO_CXX14_DECLTYPE_AUTO) || defined(BOOST_NO_CXX11_DECLTYPE_N3276)    21     -> decltype(variant2::visit(std::forward<Visitor>(op), std::forward<Variant1>(arg1)))
    24     return variant2::visit(std::forward<Visitor>(op), std::forward<Variant1>(arg1));
    29 template <
typename Variant1, 
typename Variant2, 
typename Visitor>
    32 #if defined(BOOST_NO_CXX14_DECLTYPE_AUTO) || defined(BOOST_NO_CXX11_DECLTYPE_N3276)    33     -> decltype(variant2::visit(std::forward<Visitor>(op), std::forward<Variant1>(arg1), std::forward<Variant2>(arg2)))
    36     return variant2::visit(std::forward<Visitor>(op), std::forward<Variant1>(arg1), std::forward<Variant2>(arg2));
 BOOST_FORCEINLINE auto apply_operation(Variant1 &&arg1, Variant2 &&arg2, Visitor &&op)
Applies the visitor op to the variants.
Definition: apply_operation.hpp:31