8 #ifndef BOOST_GIL_EXTENSION_DYNAMIC_IMAGE_APPLY_OPERATION_HPP
9 #define BOOST_GIL_EXTENSION_DYNAMIC_IMAGE_APPLY_OPERATION_HPP
11 #include <boost/gil/extension/dynamic_image/apply_operation_base.hpp>
12 #include <boost/gil/extension/dynamic_image/variant.hpp>
14 #ifdef BOOST_GIL_DOXYGEN_ONLY
15 #undef BOOST_GIL_REDUCE_CODE_BLOAT
20 #ifdef BOOST_GIL_REDUCE_CODE_BLOAT
22 #include <boost/gil/extension/dynamic_image/reduce.hpp>
26 namespace boost {
namespace gil {
30 template <
typename Types,
typename UnaryOp>
33 ->
typename UnaryOp::result_type
35 return apply_operation_base<Types>(arg._bits, arg._index ,op);
40 template <
typename Types,
typename UnaryOp>
43 ->
typename UnaryOp::result_type
45 return apply_operation_basec<Types>(arg._bits, arg._index ,op);
50 template <
typename Types1,
typename Types2,
typename BinaryOp>
56 ->
typename BinaryOp::result_type
58 return apply_operation_base<Types1, Types2>(
59 arg1._bits, arg1._index, arg2._bits, arg2._index, op);
64 #endif // defined(BOOST_GIL_REDUCE_CODE_BLOAT)
Represents a concrete instance of a run-time specified type from a set of typesA concept is typically...
Definition: variant.hpp:80
BOOST_FORCEINLINE auto apply_operation(variant< Types1 > const &arg1, variant< Types2 > const &arg2, BinaryOp op) -> typename BinaryOp::result_type
Invokes a generic constant operation (represented as a binary function object) on two variants...
Definition: apply_operation.hpp:52