SAGA C++ API 1.6
types.hpp
Go to the documentation of this file.
00001 //  Copyright (c) 2005-2006 Andre Merzky (andre@merzky.net)
00002 //  Copyright (c) 2005-2006 Hartmut Kaiser
00003 // 
00004 //  Use, modification and distribution is subject to the Boost Software
00005 //  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
00006 //  http://www.boost.org/LICENSE_1_0.txt)
00007 
00008 #ifndef SAGA_SPEC_TYPES_HPP
00009 #define SAGA_SPEC_TYPES_HPP
00010 
00011 #include <cstddef>              // std::size_t
00012 #include <boost/config.hpp>
00013 #include <boost/cstdint.hpp>    // boost::
00014 #include <sys/types.h>          // ::off_t, ::ssize_t
00015 
00017 
00019 
00020 // ssize_t isn't defined for the MS compilers
00021 #if defined (BOOST_MSVC)
00022 
00023 #ifndef _SSIZE_T_DEFINED
00024 # ifdef   WIN64
00025    typedef signed __int64    ssize_t;
00026 # else
00027    typedef _W64 signed int   ssize_t;
00028 # endif
00029 # define  _SSIZE_T_DEFINED
00030 #endif // _SSIZE_T_DEFINED
00031 
00032 #endif
00033 
00035 namespace saga
00036 {
00037   typedef char                    char_t;
00038 
00039   typedef boost::int8_t           int8_t;             
00040   typedef boost::uint8_t          uint8_t;            
00041                                
00042   typedef boost::int16_t          int16_t;            
00043   typedef boost::uint16_t         uint16_t;           
00044                                
00045   typedef boost::int32_t          int32_t;            
00046   typedef boost::uint32_t         uint32_t;           
00047                                
00048 # ifndef  BOOST_NO_INT64_T
00049   typedef boost::int64_t          int64_t;            
00050   typedef boost::uint64_t         uint64_t;           
00051 # endif                        
00052                                
00053   typedef boost::intmax_t         intmax_t;      
00054   typedef boost::uintmax_t        uintmax_t;     
00055                                
00056   typedef boost::long_long_type   long_long_t;
00057 
00058   typedef std::size_t             size_t;
00059   typedef ::ssize_t               ssize_t;
00060   typedef ::off_t                 off_t;
00061 
00062 } // namespace saga
00064 
00066 
00067 #endif // SAGA_SPEC_TYPES_HPP
00068 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines