00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef STXXL_TYPES_HEADER
00014 #define STXXL_TYPES_HEADER
00015
00016 #ifdef STXXL_BOOST_CONFIG
00017 #include <boost/config.hpp>
00018 #endif
00019
00020 #include <stxxl/bits/namespace.h>
00021
00022
00023 __STXXL_BEGIN_NAMESPACE
00024
00025
00026 #ifdef STXXL_BOOST_CONFIG
00027 #ifdef BOOST_MSVC
00028 typedef __int64 int64;
00029 typedef unsigned __int64 uint64;
00030 #else
00031 typedef long long int int64;
00032 typedef unsigned long long uint64;
00033 #endif
00034 #else
00035 typedef long long int int64;
00036 typedef unsigned long long uint64;
00037 #endif
00038
00039
00040
00041 enum { my_pointer_size = sizeof(void *) };
00042
00043 template <int PtrSize>
00044 struct choose_int_types
00045 { };
00046
00047 template <>
00048 struct choose_int_types<4>
00049 {
00050 typedef int int_type;
00051 typedef unsigned unsigned_type;
00052 };
00053
00054 template <>
00055 struct choose_int_types<8>
00056 {
00057 typedef long long int int_type;
00058 typedef long long unsigned unsigned_type;
00059 };
00060
00061 typedef choose_int_types<my_pointer_size>::int_type int_type;
00062 typedef choose_int_types<my_pointer_size>::unsigned_type unsigned_type;
00063
00064 __STXXL_END_NAMESPACE
00065
00066 #endif // !STXXL_TYPES_HEADER