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 63