BVB Source Codes

mars Show general.hpp Source code

Return Download mars: download general.hpp Source code - Download mars Source code - Type:.hpp
  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_GENERAL_DWA2006429_HPP
  5. # define BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
  6.  
  7. # include <boost/config.hpp>
  8. # include <boost/preprocessor/cat.hpp>
  9. # include <boost/concept/detail/backward_compatibility.hpp>
  10.  
  11. # ifdef BOOST_OLD_CONCEPT_SUPPORT
  12. #  include <boost/concept/detail/has_constraints.hpp>
  13. #  include <boost/mpl/if.hpp>
  14. # endif
  15.  
  16. // This implementation works on Comeau and GCC, all the way back to
  17. // 2.95
  18. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost { namespace concepts {
  19.  
  20. template <class ModelFn>
  21. struct requirement_;
  22.  
  23. namespace detail
  24. {
  25.   template <void(*)()> struct instantiate {};
  26. }
  27.  
  28. template <class Model>
  29. struct requirement
  30. {
  31.     static void failed() { ((Model*)0)->~Model(); }
  32. };
  33.  
  34. struct failed {};
  35.  
  36. template <class Model>
  37. struct requirement<failed ************ Model::************>
  38. {
  39.     static void failed() { ((Model*)0)->~Model(); }
  40. };
  41.  
  42. # ifdef BOOST_OLD_CONCEPT_SUPPORT
  43.  
  44. template <class Model>
  45. struct constraint
  46. {
  47.     static void failed() { ((Model*)0)->constraints(); }
  48. };
  49.  
  50. template <class Model>
  51. struct requirement_<void(*)(Model)>
  52.   : mpl::if_<
  53.         concepts::not_satisfied<Model>
  54.       , constraint<Model>
  55.       , requirement<failed ************ Model::************>
  56.     >::type
  57. {};
  58.  
  59. # else
  60.  
  61. // For GCC-2.x, these can't have exactly the same name
  62. template <class Model>
  63. struct requirement_<void(*)(Model)>
  64.     : requirement<failed ************ Model::************>
  65. {};
  66.  
  67. # endif
  68.  
  69. #  define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )             \
  70.     typedef ::mars_boost::concepts::detail::instantiate<          \
  71.     &::mars_boost::concepts::requirement_<ModelFnPtr>::failed>    \
  72.       BOOST_PP_CAT(boost_concept_check,__LINE__)             \
  73.       BOOST_ATTRIBUTE_UNUSED
  74.  
  75. }}
  76.  
  77. #endif // BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
  78.  
downloadgeneral.hpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top