Sierra Toolkit  Version of the Day
rdestl_common.h
1 #ifndef RDESTL_COMMON_H
2 #define RDESTL_COMMON_H
3 
4 #ifndef RDESTL_STANDALONE
5 # define RDESTL_STANDALONE 1
6 #endif
7 
8 #if RDESTL_STANDALONE
9 # ifdef _MSC_VER
10 # include <cassert>
11 # include <cstring>
12 # define RDE_FORCEINLINE __forceinline
13 # else
14 # include <assert.h>
15 # include <cstdlib>
16 # include <cstring>
17 # define RDE_FORCEINLINE inline
18 # endif
19 
20 # ifdef _DEBUG
21 # undef RDE_DEBUG
22 # define RDE_DEBUG 1
23 # endif
24 
25 # define RDE_ASSERT assert
26 
27  namespace rde
28  {
29  // # Meh. MSVC doesnt seem to have <stdint.h>
30  // @todo Fixes to make this portable.
31  typedef unsigned char uint8;
32  typedef unsigned short uint16;
33  typedef signed long int32;
34  typedef unsigned long uint32;
35  #ifdef _MSC_VER
36  typedef unsigned __int64 uint64;
37  #else
38  typedef unsigned long long uint64;
39  #endif
40  namespace Sys
41  {
42  RDE_FORCEINLINE void MemCpy(void* to, const void* from, size_t bytes)
43  {
44  memcpy(to, from, bytes);
45  }
46  RDE_FORCEINLINE void MemMove(void* to, const void* from, size_t bytes)
47  {
48  memmove(to, from, bytes);
49  }
50  RDE_FORCEINLINE void MemSet(void* buf, unsigned char value, size_t bytes)
51  {
52  memset(buf, value, bytes);
53  }
54  } // sys
55  }
56 #else
57 # include "core/RdeAssert.h"
58 # include "core/System.h"
59 #endif
60 
61 namespace rde
62 {
63 enum e_noinitialize
64 {
65  noinitialize
66 };
67 }
68 
69 #endif // #ifndef RDESTL_H