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

39 lines
1.1 KiB
C

#pragma once
// Define the normal namespace
#define NS_BEGIN(Name) namespace Name {
#define NS_END(Name) }
#define NS_USING(Name) using namespace Name;
// Define the redcraft master namespace
#define NS_REDCRAFT RFur
#define NS_REDCRAFT_BEGIN NS_BEGIN(NS_REDCRAFT)
#define NS_REDCRAFT_END NS_END(NS_REDCRAFT)
#define NS_REDCRAFT_USING NS_USING(NS_REDCRAFT)
// Define the private namespace - Used to hide the realization of something
#define NS_PRIVATE Private
#define NS_PRIVATE_BEGIN NS_BEGIN(NS_PRIVATE)
#define NS_PRIVATE_END NS_END(NS_PRIVATE)
// Define the STD namespace
#define NS_STD_BEGIN NS_BEGIN(std)
#define NS_STD_END NS_END(std)
#define NS_STD_USING NS_USING(std)
// Define the unnamed namespace
#define NS_UNNAMED_BEGIN namespace {
#define NS_UNNAMED_END }
// Create an alias for the namespace - like typedef
#define NS_DEFINE(Source, Target) NS_BEGIN(Target) NS_USING(Source) NS_END(Target)
NS_REDCRAFT_BEGIN
enum { INDEX_NONE = -1 };
enum { UNICODE_BOM = 0xfeff };
enum EForceInit { ForceInit };
NS_REDCRAFT_END