diff options
Diffstat (limited to 'boost/gil/concepts/dynamic_step.hpp')
-rw-r--r-- | boost/gil/concepts/dynamic_step.hpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/boost/gil/concepts/dynamic_step.hpp b/boost/gil/concepts/dynamic_step.hpp new file mode 100644 index 0000000000..31e53a591c --- /dev/null +++ b/boost/gil/concepts/dynamic_step.hpp @@ -0,0 +1,77 @@ +// +// Copyright 2005-2007 Adobe Systems Incorporated +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +// +#ifndef BOOST_GIL_CONCEPTS_DYNAMIC_STEP_HPP +#define BOOST_GIL_CONCEPTS_DYNAMIC_STEP_HPP + +#include <boost/gil/concepts/fwd.hpp> +#include <boost/gil/concepts/concept_check.hpp> + +#if defined(BOOST_CLANG) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-local-typedefs" +#endif + +#if defined(BOOST_GCC) && (BOOST_GCC >= 40600) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-local-typedefs" +#endif + +namespace boost { namespace gil { + +/// \ingroup PixelIteratorConcept +/// \brief Concept for iterators, locators and views that can define a type just like the given +/// iterator, locator or view, except it supports runtime specified step along the X navigation. +/// +/// \code +/// concept HasDynamicXStepTypeConcept<typename T> +/// { +/// typename dynamic_x_step_type<T>; +/// where Metafunction<dynamic_x_step_type<T> >; +/// }; +/// \endcode +template <typename T> +struct HasDynamicXStepTypeConcept +{ + void constraints() + { + using type = typename dynamic_x_step_type<T>::type; + ignore_unused_variable_warning(type{}); + } +}; + +/// \ingroup PixelLocatorConcept +/// \brief Concept for locators and views that can define a type just like the given locator or view, +/// except it supports runtime specified step along the Y navigation +/// \code +/// concept HasDynamicYStepTypeConcept<typename T> +/// { +/// typename dynamic_y_step_type<T>; +/// where Metafunction<dynamic_y_step_type<T> >; +/// }; +/// \endcode +template <typename T> +struct HasDynamicYStepTypeConcept +{ + void constraints() + { + using type = typename dynamic_y_step_type<T>::type; + ignore_unused_variable_warning(type{}); + } +}; + +}} // namespace boost::gil + +#if defined(BOOST_CLANG) +#pragma clang diagnostic pop +#endif + +#if defined(BOOST_GCC) && (BOOST_GCC >= 40600) +#pragma GCC diagnostic pop +#endif + +#endif |