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>
20#if defined(BOOST_CLANG)
21#pragma clang diagnostic push
22#pragma clang diagnostic ignored "-Wunknown-pragmas"
23#pragma clang diagnostic ignored "-Wunused-local-typedefs"
26#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
27#pragma GCC diagnostic push
28#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
31namespace boost {
namespace gil {
37template <
typename DstT,
typename SrcT>
39 ->
typename channel_traits<DstT>::value_type;
78 gil_function_requires<boost::EqualityComparableConcept<T>>();
80 using v =
typename channel_traits<T>::value_type;
81 using r =
typename channel_traits<T>::reference;
82 using p =
typename channel_traits<T>::pointer;
83 using cr =
typename channel_traits<T>::const_reference;
84 using cp =
typename channel_traits<T>::const_pointer;
86 channel_traits<T>::min_value();
87 channel_traits<T>::max_value();
122 gil_function_requires<ChannelConcept<T>>();
123 gil_function_requires<detail::ChannelIsMutableConcept<T>>();
137 gil_function_requires<ChannelConcept<T>>();
138 gil_function_requires<Regular<T>>();
153template <
typename T1,
typename T2>
157 typename channel_traits<T1>::value_type,
158 typename channel_traits<T2>::value_type
172template <
typename Channel1,
typename Channel2>
192template <
typename SrcChannel,
typename DstChannel>
197 gil_function_requires<ChannelConcept<SrcChannel>>();
198 gil_function_requires<MutableChannelConcept<DstChannel>>();
199 dst = channel_convert<DstChannel, SrcChannel>(src);
200 ignore_unused_variable_warning(dst);
208#if defined(BOOST_CLANG)
209#pragma clang diagnostic pop
212#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
213#pragma GCC diagnostic pop
auto channel_convert(SrcChannel const &src) -> typename channel_traits< DstChannel >::value_type
Converting from one channel type to another.
Definition channel_algorithm.hpp:461
defined(BOOST_NO_CXX17_HDR_MEMORY_RESOURCE)
Definition algorithm.hpp:36
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:75
A channel is convertible to another one if the channel_convert algorithm is defined for the two chann...
Definition concepts/channel.hpp:194
A channel that supports default construction.
Definition concepts/channel.hpp:134
Channels are compatible if their associated value types (ignoring constness and references) are the s...
Definition concepts/channel.hpp:174
A channel that allows for modifying its value.
Definition concepts/channel.hpp:119
Predicate metafunction returning whether two channels are compatible.
Definition concepts/channel.hpp:160
Definition concepts/channel.hpp:99