diff options
Diffstat (limited to 'boost/gil/concepts/concept_check.hpp')
-rw-r--r-- | boost/gil/concepts/concept_check.hpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/boost/gil/concepts/concept_check.hpp b/boost/gil/concepts/concept_check.hpp new file mode 100644 index 0000000000..108840101c --- /dev/null +++ b/boost/gil/concepts/concept_check.hpp @@ -0,0 +1,57 @@ +// +// 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_CONCEPTS_CHECK_HPP +#define BOOST_GIL_CONCEPTS_CONCEPTS_CHECK_HPP + +#include <boost/config.hpp> + +#if defined(BOOST_CLANG) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wfloat-equal" +#pragma clang diagnostic ignored "-Wuninitialized" +#endif + +#if defined(BOOST_GCC) && (BOOST_GCC >= 40600) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wfloat-equal" +#pragma GCC diagnostic ignored "-Wuninitialized" +#endif + +#include <boost/concept_check.hpp> + +#if defined(BOOST_CLANG) +#pragma clang diagnostic pop +#endif + +#if defined(BOOST_GCC) && (BOOST_GCC >= 40600) +#pragma GCC diagnostic pop +#endif + +// TODO: Document BOOST_GIL_USE_CONCEPT_CHECK here + +namespace boost { namespace gil { + +// TODO: What is GIL_CLASS_REQUIRE for; Why not use BOOST_CLASS_REQUIRE? +// TODO: What is gil_function_requires for; Why not function_requires? + +#ifdef BOOST_GIL_USE_CONCEPT_CHECK + #define GIL_CLASS_REQUIRE(type_var, ns, concept) \ + BOOST_CLASS_REQUIRE(type_var, ns, concept); + + template <typename Concept> + void gil_function_requires() { function_requires<Concept>(); } +#else + #define GIL_CLASS_REQUIRE(type_var, ns, concept) + + template <typename C> + void gil_function_requires() {} +#endif + +}} // namespace boost::gil: + +#endif |