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));