msvc_eti_base.hpp
Go to the documentation of this file.
1 
2 #ifndef BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
3 #define BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
4 
5 // Copyright Aleksey Gurtovoy 2001-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: msvc_eti_base.hpp 13472 2017-08-22 07:53:44Z richean $
14 // $Date: 2017-08-22 09:53:44 +0200 (Di, 22 Aug 2017) $
15 // $Revision: 13472 $
16 
21 
22 namespace boost { namespace mpl { namespace aux {
23 
24 #if defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
25 
26 template< bool > struct msvc_eti_base_impl
27 {
28  template< typename T > struct result_
29  : T
30  {
31  typedef T type;
32  };
33 };
34 
35 template<> struct msvc_eti_base_impl<true>
36 {
37  template< typename T > struct result_
38  {
39  typedef result_ type;
40  typedef result_ first;
41  typedef result_ second;
42  typedef result_ tag;
43  enum { value = 0 };
44  };
45 };
46 
47 template< typename T > struct msvc_eti_base
48  : msvc_eti_base_impl< is_msvc_eti_arg<T>::value >
49  ::template result_<T>
50 {
51 };
52 
53 #else // !BOOST_MPL_CFG_MSVC_70_ETI_BUG
54 
55 template< typename T > struct msvc_eti_base
56  : T
57 {
58 #if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304))
59  msvc_eti_base();
60 #endif
61  typedef T type;
62 };
63 
64 #endif
65 
66 template<> struct msvc_eti_base<int>
67 {
71  typedef msvc_eti_base tag;
72  enum { value = 0 };
73 };
74 
75 }}}
76 
77 #endif // BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
T
T
Definition: mem_fn_cc.hpp:25
boost
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
workaround.hpp
boost::mpl::aux::msvc_eti_base< int >::first
msvc_eti_base first
Definition: msvc_eti_base.hpp:69
eti.hpp
boost::foreach::tag
boost_foreach_argument_dependent_lookup_hack tag
Definition: foreach_fwd.hpp:31
is_msvc_eti_arg.hpp
gcc.hpp
boost::mpl::aux::msvc_eti_base< int >::second
msvc_eti_base second
Definition: msvc_eti_base.hpp:70
boost::mpl::aux::msvc_eti_base< int >::tag
msvc_eti_base tag
Definition: msvc_eti_base.hpp:71
boost::mpl::aux::msvc_eti_base
Definition: msvc_eti_base.hpp:55
boost::mpl::aux::msvc_eti_base< int >::type
msvc_eti_base type
Definition: msvc_eti_base.hpp:68
boost::mpl::aux::msvc_eti_base::type
T type
Definition: msvc_eti_base.hpp:61


sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:44:22