8 #ifndef BOOST_GIL_CONCEPTS_CHANNEL_HPP 9 #define BOOST_GIL_CONCEPTS_CHANNEL_HPP 11 #include <boost/gil/concepts/basic.hpp> 12 #include <boost/gil/concepts/concept_check.hpp> 13 #include <boost/gil/concepts/fwd.hpp> 15 #include <boost/concept_check.hpp> 19 #if defined(BOOST_CLANG) 20 #pragma clang diagnostic push 21 #pragma clang diagnostic ignored "-Wunused-local-typedefs" 24 #if defined(BOOST_GCC) && (BOOST_GCC >= 40600) 25 #pragma GCC diagnostic push 26 #pragma GCC diagnostic ignored "-Wunused-local-typedefs" 29 namespace boost {
namespace gil {
33 struct channel_traits;
35 template <
typename DstT,
typename SrcT>
37 ->
typename channel_traits<DstT>::value_type;
76 gil_function_requires<boost::EqualityComparableConcept<T>>();
78 using v =
typename channel_traits<T>::value_type;
79 using r =
typename channel_traits<T>::reference;
80 using p =
typename channel_traits<T>::pointer;
81 using cr =
typename channel_traits<T>::const_reference;
82 using cp =
typename channel_traits<T>::const_pointer;
84 channel_traits<T>::min_value();
85 channel_traits<T>::max_value();
115 template <
typename T>
120 gil_function_requires<ChannelConcept<T>>();
121 gil_function_requires<detail::ChannelIsMutableConcept<T>>();
130 template <
typename T>
135 gil_function_requires<ChannelConcept<T>>();
136 gil_function_requires<Regular<T>>();
151 template <
typename T1,
typename T2>
155 typename channel_traits<T1>::value_type,
156 typename channel_traits<T2>::value_type
170 template <
typename Channel1,
typename Channel2>
190 template <
typename SrcChannel,
typename DstChannel>
195 gil_function_requires<ChannelConcept<SrcChannel>>();
196 gil_function_requires<MutableChannelConcept<DstChannel>>();
197 dst = channel_convert<DstChannel, SrcChannel>(src);
198 ignore_unused_variable_warning(dst);
206 #if defined(BOOST_CLANG) 207 #pragma clang diagnostic pop 210 #if defined(BOOST_GCC) && (BOOST_GCC >= 40600) 211 #pragma GCC diagnostic pop Definition: algorithm.hpp:30
Definition: concepts/channel.hpp:96
void swap(const boost::gil::packed_channel_reference< BF, FB, NB, M > x, R &y)
swap for packed_channel_reference
Definition: channel.hpp:485
channel_traits< DstChannel >::value_type channel_convert(const SrcChannel &src)
Converting from one channel type to another.
Definition: channel_algorithm.hpp:397
A channel is convertible to another one if the channel_convert algorithm is defined for the two chann...
Definition: concepts/channel.hpp:191
A channel is the building block of a color. Color is defined as a mixture of primary colors and a cha...
Definition: concepts/channel.hpp:72
A channel that supports default construction.
Definition: concepts/channel.hpp:131
Predicate metafunction returning whether two channels are compatible.
Definition: concepts/channel.hpp:152
Channels are compatible if their associated value types (ignoring constness and references) are the s...
Definition: concepts/channel.hpp:171
A channel that allows for modifying its value.
Definition: concepts/channel.hpp:116