mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-22 16:04:17 +00:00
Refactor utility/decomp headers (#318)
This commit is contained in:

committed by
GitHub

parent
3b30607337
commit
a7194266b3
28
util/compat.h
Normal file
28
util/compat.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#ifndef COMPAT_H
|
||||
#define COMPAT_H
|
||||
|
||||
// Various macros to enable compiling with other/newer compilers.
|
||||
|
||||
// Use `COMPAT_CONST` where something ought to be 'const', and a newer compiler would complain if it
|
||||
// wasn't, but we know it isn't 'const' in the original code.
|
||||
#ifdef __MINGW32__
|
||||
#define COMPAT_CONST const
|
||||
#else
|
||||
#define COMPAT_CONST
|
||||
#endif
|
||||
|
||||
// Disable "identifier was truncated to '255' characters" warning.
|
||||
// Impossible to avoid this if using STL map or set.
|
||||
// This removes most (but not all) occurrences of the warning.
|
||||
#pragma warning(disable : 4786)
|
||||
|
||||
#define MSVC420_VERSION 1020
|
||||
|
||||
// We use `override` so newer compilers can tell us our vtables are valid,
|
||||
// however this keyword was added in C++11, so we define it as empty for
|
||||
// compatibility with older compilers.
|
||||
#if defined(_MSC_VER) && _MSC_VER <= 1200 // 1200 corresponds to VC6.0 but "override" was probably added even later
|
||||
#define override
|
||||
#endif
|
||||
|
||||
#endif // COMPAT_H
|
24
util/decomp.h
Normal file
24
util/decomp.h
Normal file
@@ -0,0 +1,24 @@
|
||||
#ifndef DECOMP_H
|
||||
#define DECOMP_H
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#define DECOMP_STATIC_ASSERT(V) \
|
||||
namespace \
|
||||
{ \
|
||||
typedef int foo[(V) ? 1 : -1]; \
|
||||
}
|
||||
#define DECOMP_SIZE_ASSERT(T, S) DECOMP_STATIC_ASSERT(sizeof(T) == S)
|
||||
#else
|
||||
#define DECOMP_STATIC_ASSERT(V)
|
||||
#define DECOMP_SIZE_ASSERT(T, S)
|
||||
#endif
|
||||
|
||||
#ifndef _countof
|
||||
#define _countof(arr) sizeof(arr) / sizeof(arr[0])
|
||||
#endif
|
||||
|
||||
typedef unsigned char undefined;
|
||||
typedef unsigned short undefined2;
|
||||
typedef unsigned int undefined4;
|
||||
|
||||
#endif // DECOMP_H
|
Reference in New Issue
Block a user