Imported Upstream version 1.71.0
[platform/upstream/boost.git] / libs / gil / test / image_view / concepts.cpp
1 //
2 // Copyright 2018 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 #ifndef BOOST_GIL_USE_CONCEPT_CHECK
9 #error Compile with BOOST_GIL_USE_CONCEPT_CHECK defined
10 #endif
11 // FIXME: There are missing headers internally, leading to incomplete types
12 #if 0
13 #include <boost/gil/image_view.hpp>
14 #include <boost/gil/planar_pixel_reference.hpp>
15 #include <boost/gil/typedefs.hpp>
16 #else
17 #include <boost/gil.hpp>
18 #endif
19
20 namespace gil = boost::gil;
21
22 template <typename View>
23 void test_view()
24 {
25     boost::function_requires<gil::ImageViewConcept<View>>();
26     boost::function_requires<gil::CollectionImageViewConcept<View>>();
27     boost::function_requires<gil::ForwardCollectionImageViewConcept<View>>();
28     boost::function_requires<gil::ReversibleCollectionImageViewConcept<View>>();
29 }
30
31 template <typename View>
32 void test_view_planar()
33 {
34     boost::function_requires<gil::ImageViewConcept<View>>();
35     boost::function_requires<gil::CollectionImageViewConcept<View>>();
36 }
37
38 int main()
39 {
40     test_view<gil::gray8_view_t>();
41     test_view<gil::gray8c_view_t>();
42
43     test_view<gil::abgr8_view_t>();
44     test_view<gil::abgr8_step_view_t>();
45     test_view<gil::abgr8c_view_t>();
46     test_view<gil::abgr8c_step_view_t>();
47
48     test_view<gil::argb8_view_t>();
49     test_view<gil::argb8_step_view_t>();
50     test_view<gil::argb8c_view_t>();
51     test_view<gil::argb8c_step_view_t>();
52
53     test_view<gil::bgr8_view_t>();
54     test_view<gil::bgr8_step_view_t>();
55     test_view<gil::bgr8c_view_t>();
56     test_view<gil::bgr8c_step_view_t>();
57
58     test_view<gil::bgra8_view_t>();
59     test_view<gil::bgra8_step_view_t>();
60     test_view<gil::bgra8c_view_t>();
61     test_view<gil::bgra8c_step_view_t>();
62
63     test_view<gil::rgb8_view_t>();
64     test_view<gil::rgb8_step_view_t>();
65     test_view<gil::rgb8c_view_t>();
66     test_view<gil::rgb8c_step_view_t>();
67     test_view_planar<gil::rgb8_planar_view_t>();
68     test_view_planar<gil::rgb8_planar_step_view_t>();
69     test_view_planar<gil::rgb8c_planar_view_t>();
70     test_view_planar<gil::rgb8c_planar_step_view_t>();
71     
72     test_view<gil::rgba8_view_t>();
73     test_view<gil::rgba8_step_view_t>();
74     test_view<gil::rgba8c_view_t>();
75     test_view<gil::rgba8c_step_view_t>();
76     test_view_planar<gil::rgba8_planar_view_t>();
77     test_view_planar<gil::rgba8_planar_step_view_t>();
78     test_view_planar<gil::rgba8c_planar_view_t>();
79     test_view_planar<gil::rgba8c_planar_step_view_t>();
80
81     test_view<gil::cmyk8_view_t>();
82     test_view<gil::cmyk8_step_view_t>();
83     test_view<gil::cmyk8c_view_t>();
84     test_view<gil::cmyk8c_step_view_t>();
85
86     test_view_planar<gil::cmyk8_planar_view_t>();
87     test_view_planar<gil::cmyk8_planar_step_view_t>();
88     test_view_planar<gil::cmyk8c_planar_view_t>();
89     test_view_planar<gil::cmyk8c_planar_step_view_t>();
90
91     return 0;
92 }