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_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \
38     || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER == 1200))
39 BOOST_TYPEOF_REGISTER_TYPE(unsigned __int8)
40 BOOST_TYPEOF_REGISTER_TYPE(__int8)
41 BOOST_TYPEOF_REGISTER_TYPE(unsigned __int16)
42 BOOST_TYPEOF_REGISTER_TYPE(__int16)
43 BOOST_TYPEOF_REGISTER_TYPE(unsigned __int32)
44 BOOST_TYPEOF_REGISTER_TYPE(__int32)
45 #ifdef __BORLANDC__
46 BOOST_TYPEOF_REGISTER_TYPE(unsigned __int64)
47 BOOST_TYPEOF_REGISTER_TYPE(__int64)
48 #endif
49 #endif
50 
51 # if defined(BOOST_HAS_LONG_LONG)
52 BOOST_TYPEOF_REGISTER_TYPE(::boost::ulong_long_type)
53 BOOST_TYPEOF_REGISTER_TYPE(::boost::long_long_type)
54 #elif defined(BOOST_HAS_MS_INT64)
55 BOOST_TYPEOF_REGISTER_TYPE(unsigned __int64)
56 BOOST_TYPEOF_REGISTER_TYPE(__int64)
57 #endif
58 
59 BOOST_TYPEOF_REGISTER_TYPE(void)
60 
61 #endif//BOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED
62