|
1 // Copyright (C) 2004 Arkadiy Vertleyb |
|
2 // Copyright (C) 2004 Peder Holt |
|
3 // Use, modification and distribution is subject to the Boost Software |
|
4 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) |
|
5 |
|
6 #ifndef BOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED |
|
7 #define BOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED |
|
8 |
|
9 #include <boost/typeof/typeof.hpp> |
|
10 |
|
11 #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() |
|
12 |
|
13 BOOST_TYPEOF_REGISTER_TYPE(unsigned char) |
|
14 BOOST_TYPEOF_REGISTER_TYPE(unsigned short) |
|
15 BOOST_TYPEOF_REGISTER_TYPE(unsigned int) |
|
16 BOOST_TYPEOF_REGISTER_TYPE(unsigned long) |
|
17 |
|
18 BOOST_TYPEOF_REGISTER_TYPE(signed char) |
|
19 BOOST_TYPEOF_REGISTER_TYPE(signed short) |
|
20 BOOST_TYPEOF_REGISTER_TYPE(signed int) |
|
21 BOOST_TYPEOF_REGISTER_TYPE(signed long) |
|
22 |
|
23 BOOST_TYPEOF_REGISTER_TYPE(bool) |
|
24 BOOST_TYPEOF_REGISTER_TYPE(char) |
|
25 |
|
26 BOOST_TYPEOF_REGISTER_TYPE(float) |
|
27 BOOST_TYPEOF_REGISTER_TYPE(double) |
|
28 BOOST_TYPEOF_REGISTER_TYPE(long double) |
|
29 |
|
30 #ifndef BOOST_NO_INTRINSIC_WCHAR_T |
|
31 // If the following line fails to compile and you're using the Intel |
|
32 // compiler, see http://lists.boost.org/MailArchives/boost-users/msg06567.php, |
|
33 // and define BOOST_NO_INTRINSIC_WCHAR_T on the command line. |
|
34 BOOST_TYPEOF_REGISTER_TYPE(wchar_t) |
|
35 #endif |
|
36 |
|
37 #if (defined(BOOST_MSVC) && (BOOST_MSVC == 1200)) \ |
|
38 || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \ |
|
39 || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER == 1200)) |
|
40 BOOST_TYPEOF_REGISTER_TYPE(unsigned __int8) |
|
41 BOOST_TYPEOF_REGISTER_TYPE(__int8) |
|
42 BOOST_TYPEOF_REGISTER_TYPE(unsigned __int16) |
|
43 BOOST_TYPEOF_REGISTER_TYPE(__int16) |
|
44 BOOST_TYPEOF_REGISTER_TYPE(unsigned __int32) |
|
45 BOOST_TYPEOF_REGISTER_TYPE(__int32) |
|
46 #ifdef __BORLANDC__ |
|
47 BOOST_TYPEOF_REGISTER_TYPE(unsigned __int64) |
|
48 BOOST_TYPEOF_REGISTER_TYPE(__int64) |
|
49 #endif |
|
50 #endif |
|
51 |
|
52 # if defined(BOOST_HAS_LONG_LONG) |
|
53 BOOST_TYPEOF_REGISTER_TYPE(::boost::ulong_long_type) |
|
54 BOOST_TYPEOF_REGISTER_TYPE(::boost::long_long_type) |
|
55 #elif defined(BOOST_HAS_MS_INT64) |
|
56 BOOST_TYPEOF_REGISTER_TYPE(unsigned __int64) |
|
57 BOOST_TYPEOF_REGISTER_TYPE(__int64) |
|
58 #endif |
|
59 |
|
60 BOOST_TYPEOF_REGISTER_TYPE(void) |
|
61 |
|
62 #endif//BOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED |