Imported Upstream version 1.71.0
[platform/upstream/boost.git] / libs / gil / test / core / iterator / is_planar.cpp
1 //
2 // Copyright 2019 Mateusz Loskot <mateusz at loskot dot net>
3 //
4 // Distributed under the Boost Software License, Version 1.0
5 // See accompanying file LICENSE_1_0.txt or copy at
6 // http://www.boost.org/LICENSE_1_0.txt
7 //
8 #include <boost/gil/pixel.hpp>
9 #include <boost/gil/planar_pixel_iterator.hpp>
10 #include <boost/gil/typedefs.hpp>
11
12 #include <boost/mp11.hpp>
13
14 namespace gil = boost::gil;
15 using namespace boost::mp11;
16
17 int main()
18 {
19     using iterators = mp_list
20     <
21         gil::planar_pixel_iterator<gil::rgb8_view_t*, gil::rgb_t>,
22         gil::rgb8_planar_ptr_t,
23         gil::rgb8_planar_step_ptr_t,
24         gil::rgb8c_planar_ptr_t,
25         gil::rgb8c_planar_step_ptr_t,
26         gil::rgb16_planar_ptr_t,
27         gil::rgb16c_planar_ptr_t,
28         gil::rgb16s_planar_ptr_t,
29         gil::rgb16sc_planar_ptr_t,
30         gil::rgb32_planar_ptr_t,
31         gil::rgb32c_planar_ptr_t,
32         gil::rgb32f_planar_ptr_t,
33         gil::rgb32fc_planar_ptr_t,
34         gil::rgb32s_planar_ptr_t,
35         gil::rgb32sc_planar_ptr_t,
36         gil::cmyk8_planar_ptr_t,
37         gil::cmyk8c_planar_ptr_t,
38         gil::cmyk8s_planar_ptr_t,
39         gil::cmyk8sc_planar_ptr_t,
40         gil::cmyk16_planar_ptr_t,
41         gil::cmyk16c_planar_ptr_t,
42         gil::cmyk16s_planar_ptr_t,
43         gil::cmyk16sc_planar_ptr_t,
44         gil::cmyk32_planar_ptr_t,
45         gil::cmyk32c_planar_ptr_t,
46         gil::cmyk32f_planar_ptr_t,
47         gil::cmyk32fc_planar_ptr_t,
48         gil::cmyk32s_planar_ptr_t,
49         gil::cmyk32sc_planar_ptr_t,
50         gil::rgba8_planar_ptr_t,
51         gil::rgba8c_planar_ptr_t,
52         gil::rgba8s_planar_ptr_t,
53         gil::rgba8sc_planar_ptr_t,
54         gil::rgba16_planar_ptr_t,
55         gil::rgba16c_planar_ptr_t,
56         gil::rgba16s_planar_ptr_t,
57         gil::rgba16sc_planar_ptr_t,
58         gil::rgba32_planar_ptr_t,
59         gil::rgba32c_planar_ptr_t,
60         gil::rgba32f_planar_ptr_t,
61         gil::rgba32fc_planar_ptr_t,
62         gil::rgba32s_planar_ptr_t,
63         gil::rgba32sc_planar_ptr_t
64     >;
65
66     static_assert(std::is_same
67         <
68             mp_all_of<iterators, gil::is_planar>,
69             std::true_type
70         >::value,
71         "is_planar yields true for non-planar pixel iterator");
72 }