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_DETAIL_BORLAND_DWA2006429_HPP 5 # define BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP 6 7 # include <boost/preprocessor/cat.hpp> 8 # include <boost/concept/detail/backward_compatibility.hpp> 9 10 namespace boost { namespace concepts { 11 12 template <class ModelFnPtr> 13 struct require; 14 15 template <class Model> 16 struct require<void(*)(Model)> 17 { 18 enum { instantiate = sizeof((((Model*)0)->~Model()), 3) }; 19 }; 20 21 # define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ 22 enum \ 23 { \ 24 BOOST_PP_CAT(boost_concept_check,__LINE__) = \ 25 boost::concepts::require<ModelFnPtr>::instantiate \ 26 } 27 28 }} // namespace boost::concept 29 30 #endif // BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP 31