Redcraft/Redcraft.Utility/Source/Public/Misc/CoreDefines.h

51 lines
1.7 KiB
C
Raw Normal View History

2021-12-01 14:55:35 +00:00
#pragma once
// Define the normal namespace
#define NAMESPACE_BEGIN(Name) namespace Name {
#define NAMESPACE_END(Name) }
#define NAMESPACE_USING(Name) using namespace Name;
// Define the inline namespace
#define NAMESPACE_INLINE_BEGIN(Name) inline NAMESPACE_BEGIN(Name)
#define NAMESPACE_INLINE_END(Name) NAMESPACE_END(Name)
// Define the module namespace
#define NAMESPACE_MODULE_BEGIN(Name) NAMESPACE_INLINE_BEGIN(Name)
#define NAMESPACE_MODULE_END(Name) NAMESPACE_INLINE_END(Name)
2021-12-01 14:55:35 +00:00
// Define the redcraft master namespace
#define NAMESPACE_REDCRAFT RFur
#define NAMESPACE_REDCRAFT_BEGIN NAMESPACE_BEGIN(NAMESPACE_REDCRAFT)
#define NAMESPACE_REDCRAFT_END NAMESPACE_END(NAMESPACE_REDCRAFT)
#define NAMESPACE_REDCRAFT_USING NAMESPACE_USING(NAMESPACE_REDCRAFT)
// Define the private namespace - Used to hide the realization of something
#define NAMESPACE_PRIVATE Private
#define NAMESPACE_PRIVATE_BEGIN NAMESPACE_BEGIN(NAMESPACE_PRIVATE)
#define NAMESPACE_PRIVATE_END NAMESPACE_END(NAMESPACE_PRIVATE)
// Define the STD namespace
#define NAMESPACE_STD std
#define NAMESPACE_STD_BEGIN NAMESPACE_BEGIN(NAMESPACE_STD)
#define NAMESPACE_STD_END NAMESPACE_END(NAMESPACE_STD)
#define NAMESPACE_STD_USING NAMESPACE_USING(NAMESPACE_STD)
// Define the unnamed namespace
#define NAMESPACE_UNNAMED_BEGIN namespace {
#define NAMESPACE_UNNAMED_END }
#define NAMESPACE_INLINE_UNNAMED_BEGIN inline namespace {
#define NAMESPACE_INLINE_UNNAMED_END }
2021-12-01 14:55:35 +00:00
NAMESPACE_REDCRAFT_BEGIN
NAMESPACE_MODULE_BEGIN(Redcraft)
NAMESPACE_MODULE_BEGIN(Utility)
2021-12-01 14:55:35 +00:00
enum { INDEX_NONE = -1 };
enum { UNICODE_BOM = 0xfeff };
enum EForceInit { ForceInit };
NAMESPACE_MODULE_END(Utility)
NAMESPACE_MODULE_END(Redcraft)
2021-12-01 14:55:35 +00:00
NAMESPACE_REDCRAFT_END