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