BVB Source Codes

mars Show O1_size_impl.hpp Source code

Return Download mars: download O1_size_impl.hpp Source code - Download mars Source code - Type:.hpp
  1.  
  2. #ifndef BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
  3. #define BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
  4.  
  5. // Copyright Aleksey Gurtovoy 2000-2004
  6. //
  7. // Distributed under the Boost Software License, Version 1.0.
  8. // (See accompanying file LICENSE_1_0.txt or copy at
  9. // http://www.boost.org/LICENSE_1_0.txt)
  10. //
  11. // See http://www.boost.org/libs/mpl for documentation.
  12.  
  13. // $Id$
  14. // $Date$
  15. // $Revision$
  16.  
  17. #include <boost/mpl/O1_size_fwd.hpp>
  18. #include <boost/mpl/long.hpp>
  19. #include <boost/mpl/if.hpp>
  20. #include <boost/mpl/aux_/has_size.hpp>
  21. #include <boost/mpl/aux_/config/forwarding.hpp>
  22. #include <boost/mpl/aux_/config/static_constant.hpp>
  23. #include <boost/mpl/aux_/config/msvc.hpp>
  24. #include <boost/mpl/aux_/config/workaround.hpp>
  25.  
  26. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost { namespace mpl {
  27.  
  28. // default implementation - returns 'Sequence::size' if sequence has a 'size'
  29. // member, and -1 otherwise; conrete sequences might override it by
  30. // specializing either the 'O1_size_impl' or the primary 'O1_size' template
  31.  
  32. #   if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) \
  33.     && !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
  34.  
  35. namespace aux {
  36. template< typename Sequence > struct O1_size_impl
  37.     : Sequence::size
  38. {
  39. };
  40. }
  41.  
  42. template< typename Tag >
  43. struct O1_size_impl
  44. {
  45.     template< typename Sequence > struct apply
  46. #if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
  47.         : if_<
  48.               aux::has_size<Sequence>
  49.             , aux::O1_size_impl<Sequence>
  50.             , long_<-1>
  51.             >::type
  52.     {
  53. #else
  54.     {
  55.         typedef typename if_<
  56.               aux::has_size<Sequence>
  57.             , aux::O1_size_impl<Sequence>
  58.             , long_<-1>
  59.             >::type type;
  60.  
  61.         BOOST_STATIC_CONSTANT(long, value =
  62.               (if_<
  63.                   aux::has_size<Sequence>
  64.                 , aux::O1_size_impl<Sequence>
  65.                 , long_<-1>
  66.                 >::type::value)
  67.             );
  68. #endif
  69.     };
  70. };
  71.  
  72. #   else // BOOST_MSVC
  73.  
  74. template< typename Tag >
  75. struct O1_size_impl
  76. {
  77.     template< typename Sequence > struct apply
  78.         : long_<-1>
  79.         {
  80.         };
  81. };
  82.  
  83. #   endif
  84.  
  85. }}
  86.  
  87. #endif // BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
  88.  
downloadO1_size_impl.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