etk/etk/types.h

59 lines
1.4 KiB
C++

/**
* @author Edouard DUPIN
*
* @copyright 2011, Edouard DUPIN, all right reserved
*
* @license BSD v3 (see license file)
*/
#ifndef __ETK_TYPES_H__
#define __ETK_TYPES_H__
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <assert.h>
// defien type : uintXX_t and intXX_t
#define __STDC_LIMIT_MACROS
// note in android include the macro of min max are overwitten
#include <stdint.h>
// in case of android error ...
#ifdef __TARGET_OS__Android
#ifndef __STDINT_LIMITS
#define INT8_MIN (-128)
#define INT8_MAX (127)
#define UINT8_MAX (255U)
#define INT16_MIN (-32768)
#define INT16_MAX (32767)
#define UINT16_MAX (65535U)
#define INT32_MIN (-2147483647-1)
#define INT32_MAX (2147483647)
#define UINT32_MAX (4294967295U)
#define INT64_MIN (__INT64_C(-9223372036854775807)-1)
#define INT64_MAX (__INT64_C(9223372036854775807))
#define UINT64_MAX (__UINT64_C(18446744073709551615))
#endif
#endif
#define etk_min(elemA,elemB) (((elemA)<(elemB)) ? (elemA) : (elemB))
#define etk_max(elemA,elemB) (((elemA)<(elemB)) ? (elemB) : (elemA))
#define etk_avg(minimim,elem,maximum) (((minimim)>(elem)) ? (minimim) : ((maximum)<(elem)) ? (maximum) : (elem))
#include <etk/UChar.h>
#include <string>
#ifdef __TARGET_OS__MacOs
namespace std {
typedef std::basic_string<char32_t> u32string;
};
#endif
typedef float float_t;
#endif