]>
Commit | Line | Data |
---|---|---|
92f5a8d4 TL |
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 | |
f67539c2 | 16 | #pragma clang diagnostic ignored "-Wunknown-pragmas" |
92f5a8d4 TL |
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 | { | |
41 | 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 | { | |
61 | 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 |