BVB Source Codes

mars Show msvc.hpp Source code

Return Download mars: download msvc.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_CHECK_MSVC_DWA2006429_HPP
  5. # define BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
  6.  
  7. # include <boost/preprocessor/cat.hpp>
  8. # include <boost/concept/detail/backward_compatibility.hpp>
  9. # include <boost/config.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. # ifdef BOOST_MSVC
  17. #  pragma warning(push)
  18. #  pragma warning(disable:4100)
  19. # endif
  20.  
  21. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost { namespace concepts {
  22.  
  23.  
  24. template <class Model>
  25. struct check
  26. {
  27.     virtual void failed(Model* x)
  28.     {
  29.         x->~Model();
  30.     }
  31. };
  32.  
  33. # ifndef BOOST_NO_PARTIAL_SPECIALIZATION
  34. struct failed {};
  35. template <class Model>
  36. struct check<failed ************ Model::************>
  37. {
  38.     virtual void failed(Model* x)
  39.     {
  40.         x->~Model();
  41.     }
  42. };
  43. # endif
  44.  
  45. # ifdef BOOST_OLD_CONCEPT_SUPPORT
  46.  
  47. namespace detail
  48. {
  49.   // No need for a virtual function here, since evaluating
  50.   // not_satisfied below will have already instantiated the
  51.   // constraints() member.
  52.   struct constraint {};
  53. }
  54.  
  55. template <class Model>
  56. struct require
  57.   : mpl::if_c<
  58.         not_satisfied<Model>::value
  59.       , detail::constraint
  60. # ifndef BOOST_NO_PARTIAL_SPECIALIZATION
  61.       , check<Model>
  62. # else
  63.       , check<failed ************ Model::************>
  64. # endif
  65.         >::type
  66. {};
  67.      
  68. # else
  69.  
  70. template <class Model>
  71. struct require
  72. # ifndef BOOST_NO_PARTIAL_SPECIALIZATION
  73.     : check<Model>
  74. # else
  75.     : check<failed ************ Model::************>
  76. # endif
  77. {};
  78.  
  79. # endif
  80.    
  81. # if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
  82.  
  83. //
  84. // The iterator library sees some really strange errors unless we
  85. // do things this way.
  86. //
  87. template <class Model>
  88. struct require<void(*)(Model)>
  89. {
  90.     virtual void failed(Model*)
  91.     {
  92.         require<Model>();
  93.     }
  94. };
  95.  
  96. # define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )      \
  97. enum                                                \
  98. {                                                   \
  99.     BOOST_PP_CAT(boost_concept_check,__LINE__) =    \
  100.     sizeof(::mars_boost::concepts::require<ModelFnPtr>)    \
  101. }
  102.  
  103. # else // Not vc-7.1
  104.  
  105. template <class Model>
  106. require<Model>
  107. require_(void(*)(Model));
  108.  
  109. # define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )          \
  110. enum                                                    \
  111. {                                                       \
  112.     BOOST_PP_CAT(boost_concept_check,__LINE__) =        \
  113.       sizeof(::mars_boost::concepts::require_((ModelFnPtr)0)) \
  114. }
  115.  
  116. # endif
  117. }}
  118.  
  119. # ifdef BOOST_MSVC
  120. #  pragma warning(pop)
  121. # endif
  122.  
  123. #endif // BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
  124.  
downloadmsvc.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