MCRO
C++23 utilities for Unreal Engine.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
Start.h File Reference

Use this header and End.h in tandem to include third-party library headers which may not tolerate Unreal's common vocabulary macros or its stricter warning policies. More...

#include "Mcro/Macros.h"

Go to the source code of this file.

Macros

#define MCRO_ALLOW_TEXT   0
 
#define MCRO_ALLOW_TRUE   0
 
#define MCRO_ALLOW_FALSE   0
 
#define MCRO_ALLOW_MAX_uint8   0
 
#define MCRO_ALLOW_MAX_uint16   0
 
#define MCRO_ALLOW_MAX_uint32   0
 
#define MCRO_ALLOW_MAX_int32   0
 
#define MCRO_ALLOW_CONSTEXPR   0
 
#define MCRO_ALLOW_PI   0
 
#define MCRO_ALLOW_dynamic_cast   0
 
#define MCRO_ALLOW_VARARGS   0
 
#define MCRO_ALLOW_CDECL   0
 
#define MCRO_ALLOW_STDCALL   0
 
#define MCRO_ALLOW_FORCEINLINE   0
 
#define MCRO_ALLOW_FORCENOINLINE   0
 
#define MCRO_ALLOW_ABSTRACT   0
 
#define MCRO_ALLOW_LINE_TERMINATOR   0
 
#define MCRO_ALLOW_LINE_TERMINATOR_ANSI   0
 
#define MCRO_ALLOW_DLLEXPORT   0
 
#define MCRO_ALLOW_DLLIMPORT   0
 
#define MCRO_ALLOW_LIKELY   0
 
#define MCRO_ALLOW_UNLIKELY   0
 
#define MCRO_ALLOW_RESTRICT   0
 
#define MCRO_ALLOW_MOBILE   0
 
#define MCRO_ALLOW_CONSOLE   0
 
#define MCRO_ALLOW_DEFAULTS   0
 
#define NON_UNREAL_INCLUDE_REGION   1
 

Detailed Description

Use this header and End.h in tandem to include third-party library headers which may not tolerate Unreal's common vocabulary macros or its stricter warning policies.

Author
David Mórász
Date
2025

With MCRO_ALLOW_* macros one can control if a the associated macro should be hidden from the library or not. By default they're all disallowed (0). For example some COM headers expect TEXT to be defined, so one can do

#define MCRO_ALLOW_TEXT 1
#include "comdef.h"
Use this header and Start.h in tandem to include third-party library headers which may not tolerate U...
Use this header and End.h in tandem to include third-party library headers which may not tolerate Unr...

Similarly platform specific include guards like AllowWindowsPlatformTypes and AllowWindowsPlatformAtomics can be controlled with MCRO_ALLOW_<platform>_TYPES macro. These are allowed by default (1).

In most cases these 'allow' macros are not needed. Only use them when the wrapped library headers cause compile error for a missing macro they expected or if 'platform-types' interfere with them. The meaning of these macros are reset to their default after each inclusion of End.h

Definition in file Start.h.

Macro Definition Documentation

◆ MCRO_ALLOW_ABSTRACT

#define MCRO_ALLOW_ABSTRACT   0

Definition at line 87 of file Start.h.

◆ MCRO_ALLOW_CDECL

#define MCRO_ALLOW_CDECL   0

Definition at line 75 of file Start.h.

◆ MCRO_ALLOW_CONSOLE

#define MCRO_ALLOW_CONSOLE   0

Definition at line 114 of file Start.h.

◆ MCRO_ALLOW_CONSTEXPR

#define MCRO_ALLOW_CONSTEXPR   0

Definition at line 63 of file Start.h.

◆ MCRO_ALLOW_DEFAULTS

#define MCRO_ALLOW_DEFAULTS   0

Definition at line 117 of file Start.h.

◆ MCRO_ALLOW_DLLEXPORT

#define MCRO_ALLOW_DLLEXPORT   0

Definition at line 96 of file Start.h.

◆ MCRO_ALLOW_DLLIMPORT

#define MCRO_ALLOW_DLLIMPORT   0

Definition at line 99 of file Start.h.

◆ MCRO_ALLOW_dynamic_cast

#define MCRO_ALLOW_dynamic_cast   0

Definition at line 69 of file Start.h.

◆ MCRO_ALLOW_FALSE

#define MCRO_ALLOW_FALSE   0

Definition at line 48 of file Start.h.

◆ MCRO_ALLOW_FORCEINLINE

#define MCRO_ALLOW_FORCEINLINE   0

Definition at line 81 of file Start.h.

◆ MCRO_ALLOW_FORCENOINLINE

#define MCRO_ALLOW_FORCENOINLINE   0

Definition at line 84 of file Start.h.

◆ MCRO_ALLOW_LIKELY

#define MCRO_ALLOW_LIKELY   0

Definition at line 102 of file Start.h.

◆ MCRO_ALLOW_LINE_TERMINATOR

#define MCRO_ALLOW_LINE_TERMINATOR   0

Definition at line 90 of file Start.h.

◆ MCRO_ALLOW_LINE_TERMINATOR_ANSI

#define MCRO_ALLOW_LINE_TERMINATOR_ANSI   0

Definition at line 93 of file Start.h.

◆ MCRO_ALLOW_MAX_int32

#define MCRO_ALLOW_MAX_int32   0

Definition at line 60 of file Start.h.

◆ MCRO_ALLOW_MAX_uint16

#define MCRO_ALLOW_MAX_uint16   0

Definition at line 54 of file Start.h.

◆ MCRO_ALLOW_MAX_uint32

#define MCRO_ALLOW_MAX_uint32   0

Definition at line 57 of file Start.h.

◆ MCRO_ALLOW_MAX_uint8

#define MCRO_ALLOW_MAX_uint8   0

Definition at line 51 of file Start.h.

◆ MCRO_ALLOW_MOBILE

#define MCRO_ALLOW_MOBILE   0

Definition at line 111 of file Start.h.

◆ MCRO_ALLOW_PI

#define MCRO_ALLOW_PI   0

Definition at line 66 of file Start.h.

◆ MCRO_ALLOW_RESTRICT

#define MCRO_ALLOW_RESTRICT   0

Definition at line 108 of file Start.h.

◆ MCRO_ALLOW_STDCALL

#define MCRO_ALLOW_STDCALL   0

Definition at line 78 of file Start.h.

◆ MCRO_ALLOW_TEXT

#define MCRO_ALLOW_TEXT   0

Definition at line 42 of file Start.h.

◆ MCRO_ALLOW_TRUE

#define MCRO_ALLOW_TRUE   0

Definition at line 45 of file Start.h.

◆ MCRO_ALLOW_UNLIKELY

#define MCRO_ALLOW_UNLIKELY   0

Definition at line 105 of file Start.h.

◆ MCRO_ALLOW_VARARGS

#define MCRO_ALLOW_VARARGS   0

Definition at line 72 of file Start.h.

◆ NON_UNREAL_INCLUDE_REGION

#define NON_UNREAL_INCLUDE_REGION   1

Definition at line 123 of file Start.h.