]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // Copyright David Abrahams 2006. Distributed under the Boost |
2 | // Software License, Version 1.0. (See accompanying | |
3 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
4 | #ifndef BOOST_CONCEPT_USAGE_DWA2006919_HPP | |
5 | # define BOOST_CONCEPT_USAGE_DWA2006919_HPP | |
6 | ||
7 | # include <boost/concept/assert.hpp> | |
8 | # include <boost/detail/workaround.hpp> | |
9 | # include <boost/concept/detail/backward_compatibility.hpp> | |
10 | ||
11 | namespace boost { namespace concepts { | |
12 | ||
13 | template <class Model> | |
14 | struct usage_requirements | |
15 | { | |
16 | ~usage_requirements() { ((Model*)0)->~Model(); } | |
17 | }; | |
18 | ||
19 | # if BOOST_WORKAROUND(__GNUC__, <= 3) | |
20 | ||
21 | # define BOOST_CONCEPT_USAGE(model) \ | |
22 | model(); /* at least 2.96 and 3.4.3 both need this :( */ \ | |
23 | BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \ | |
24 | ~model() | |
25 | ||
26 | # else | |
27 | ||
28 | # define BOOST_CONCEPT_USAGE(model) \ | |
29 | BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \ | |
30 | ~model() | |
31 | ||
32 | # endif | |
33 | ||
34 | }} // namespace boost::concepts | |
35 | ||
36 | #endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP |