source:
vendors/XIOS/current/extern/boost/include/boost/type_traits/msvc/typeof.hpp
@
3428
Last change on this file since 3428 was 3428, checked in by rblod, 12 years ago | |
---|---|
File size: 1.3 KB |
Line | |
---|---|
1 | // Copyright (C) 2004 Peder Holt |
2 | // Use, modification and distribution is subject to the Boost Software |
3 | // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) |
4 | |
5 | #ifndef BOOST_TYPETRAITS_MSVC_TYPEOF_HPP |
6 | #define BOOST_TYPETRAITS_MSVC_TYPEOF_HPP |
7 | |
8 | #include <boost/config.hpp> |
9 | #include <boost/detail/workaround.hpp> |
10 | |
11 | namespace boost { namespace detail { |
12 | # if BOOST_WORKAROUND(BOOST_MSVC,==1300) |
13 | template<typename ID> |
14 | struct msvc_extract_type |
15 | { |
16 | template<bool> |
17 | struct id2type_impl; |
18 | |
19 | typedef id2type_impl<true> id2type; |
20 | }; |
21 | |
22 | template<typename T, typename ID> |
23 | struct msvc_register_type : msvc_extract_type<ID> |
24 | { |
25 | template<> |
26 | struct id2type_impl<true> //VC7.0 specific bugfeature |
27 | { |
28 | typedef T type; |
29 | }; |
30 | }; |
31 | # else |
32 | template<typename ID> |
33 | struct msvc_extract_type |
34 | { |
35 | struct id2type; |
36 | }; |
37 | |
38 | template<typename T, typename ID> |
39 | struct msvc_register_type : msvc_extract_type<ID> |
40 | { |
41 | typedef msvc_extract_type<ID> base_type; |
42 | struct base_type::id2type // This uses nice VC6.5 and VC7.1 bugfeature |
43 | { |
44 | typedef T type; |
45 | }; |
46 | }; |
47 | # endif |
48 | }} |
49 | |
50 | #endif //BOOST_TYPETRAITS_MSVC_TYPEOF_IMPL_HPP |
Note: See TracBrowser
for help on using the repository browser.