• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright 2005-2007 Adobe Systems Incorporated
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_CONCEPTS_DYNAMIC_STEP_HPP
9 #define BOOST_GIL_CONCEPTS_DYNAMIC_STEP_HPP
10 
11 #include <boost/gil/concepts/fwd.hpp>
12 #include <boost/gil/concepts/concept_check.hpp>
13 
14 #if defined(BOOST_CLANG)
15 #pragma clang diagnostic push
16 #pragma clang diagnostic ignored "-Wunknown-pragmas"
17 #pragma clang diagnostic ignored "-Wunused-local-typedefs"
18 #endif
19 
20 #if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
21 #pragma GCC diagnostic push
22 #pragma GCC diagnostic ignored "-Wunused-local-typedefs"
23 #endif
24 
25 namespace boost { namespace gil {
26 
27 /// \ingroup PixelIteratorConcept
28 /// \brief Concept for iterators, locators and views that can define a type just like the given
29 ///        iterator, locator or view, except it supports runtime specified step along the X navigation.
30 ///
31 /// \code
32 /// concept HasDynamicXStepTypeConcept<typename T>
33 /// {
34 ///     typename dynamic_x_step_type<T>;
35 ///         where Metafunction<dynamic_x_step_type<T> >;
36 /// };
37 /// \endcode
38 template <typename T>
39 struct HasDynamicXStepTypeConcept
40 {
constraintsboost::gil::HasDynamicXStepTypeConcept41     void constraints()
42     {
43         using type = typename dynamic_x_step_type<T>::type;
44         ignore_unused_variable_warning(type{});
45     }
46 };
47 
48 /// \ingroup PixelLocatorConcept
49 /// \brief Concept for locators and views that can define a type just like the given locator or view,
50 ///        except it supports runtime specified step along the Y navigation
51 /// \code
52 /// concept HasDynamicYStepTypeConcept<typename T>
53 /// {
54 ///     typename dynamic_y_step_type<T>;
55 ///         where Metafunction<dynamic_y_step_type<T> >;
56 /// };
57 /// \endcode
58 template <typename T>
59 struct HasDynamicYStepTypeConcept
60 {
constraintsboost::gil::HasDynamicYStepTypeConcept61     void constraints()
62     {
63         using type = typename dynamic_y_step_type<T>::type;
64         ignore_unused_variable_warning(type{});
65     }
66 };
67 
68 }} // namespace boost::gil
69 
70 #if defined(BOOST_CLANG)
71 #pragma clang diagnostic pop
72 #endif
73 
74 #if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
75 #pragma GCC diagnostic pop
76 #endif
77 
78 #endif
79