Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
hrplib
hrpCollision
Opcode
Ice
IcePreprocessor.h
Go to the documentation of this file.
1
8
11
// Include Guard
12
#ifndef __ICEPREPROCESSOR_H__
13
#define __ICEPREPROCESSOR_H__
14
15
// Check platform
16
#if defined( _WIN32 ) || defined( WIN32 )
17
// #pragma message("Compiling on Windows...")
18
#define PLATFORM_WINDOWS
19
#else
20
// don't issue pragmas on unknown platforms
21
// #pragma message("Compiling on unknown platform...")
22
#endif
23
24
// Check compiler
25
#if defined(_MSC_VER)
26
// #pragma message("Compiling with VC++...")
27
#define COMPILER_VISUAL_CPP
28
#else
29
// don't issue pragmas on unknown platforms
30
// #pragma message("Compiling with unknown compiler...")
31
#endif
32
33
// Check compiler options. If this file is included in user-apps, this
34
// shouldn't be needed, so that they can use what they like best.
35
#ifndef ICE_DONT_CHECK_COMPILER_OPTIONS
36
#ifdef COMPILER_VISUAL_CPP
37
#if defined(_CHAR_UNSIGNED)
38
#endif
39
40
#if defined(_CPPRTTI)
41
#error Please disable RTTI...
42
#endif
43
44
#if defined(_CPPUNWIND)
45
#error Please disable exceptions...
46
#endif
47
48
#if defined(_MT)
49
// Multithreading
50
#endif
51
#endif
52
#endif
53
54
// Check debug mode
55
#ifdef DEBUG // May be defined instead of _DEBUG. Let's fix it.
56
#ifndef _DEBUG
57
#define _DEBUG
58
#endif
59
#endif
60
61
#ifdef _DEBUG
62
// Here you may define items for debug builds
63
#endif
64
65
#ifndef THIS_FILE
66
#define THIS_FILE __FILE__
67
#endif
68
69
#ifndef ICE_NO_DLL
70
#ifdef ICECORE_EXPORTS
71
#define ICECORE_API __declspec(dllexport)
72
#else
73
#define ICECORE_API __declspec(dllimport)
74
#endif
75
#else
76
#define ICECORE_API
77
#endif
78
79
// Don't override new/delete
80
// #define DEFAULT_NEWDELETE
81
#define DONT_TRACK_MEMORY_LEAKS
82
83
#define FUNCTION extern "C"
84
85
// Cosmetic stuff [mainly useful with multiple inheritance]
86
#define override(base_class) virtual
87
88
// Our own inline keyword, so that:
89
// - we can switch to __forceinline to check it's really better or not
90
// - we can remove __forceinline if the compiler doesn't support it
91
// #define inline_ __forceinline
92
// #define inline_ inline
93
94
// Contributed by Bruce Mitchener
95
#if defined(COMPILER_VISUAL_CPP)
96
#define inline_ __forceinline
97
// #define inline_ inline
98
#elif defined(__GNUC__) && __GNUC__ < 3
99
#define inline_ inline
100
#elif defined(__GNUC__)
101
#define inline_ inline __attribute__ ((always_inline))
102
#else
103
#define inline_ inline
104
#endif
105
106
// Down the hatch
107
#ifdef _MSC_VER
108
#pragma inline_depth( 255 )
109
#endif
110
111
#ifdef COMPILER_VISUAL_CPP
112
#pragma intrinsic(memcmp)
113
#pragma intrinsic(memcpy)
114
#pragma intrinsic(memset)
115
#pragma intrinsic(strcat)
116
#pragma intrinsic(strcmp)
117
#pragma intrinsic(strcpy)
118
#pragma intrinsic(strlen)
119
#pragma intrinsic(abs)
120
#pragma intrinsic(labs)
121
#endif
122
123
// ANSI compliance
124
#ifdef _DEBUG
125
// Remove painful warning in debug
126
inline_
bool
__False__(){
return
false
; }
127
#define for if(__False__()){} else for
128
#else
129
#define for if(0){} else for
130
#endif
131
132
#endif // __ICEPREPROCESSOR_H__
inline_
#define inline_
Definition:
IcePreprocessor.h:103
openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Sat Apr 13 2019 02:14:22