40 lines
1.3 KiB
C
40 lines
1.3 KiB
C
|
#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 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 }
|
||
|
|
||
|
// Create an alias for the namespace - like typedef
|
||
|
#define NAMESPACE_DEFINE(Source, Target) NAMESPACE_BEGIN(Target) NAMESPACE_USING(Source) NAMESPACE_END(Target)
|
||
|
|
||
|
NAMESPACE_REDCRAFT_BEGIN
|
||
|
|
||
|
enum { INDEX_NONE = -1 };
|
||
|
enum { UNICODE_BOM = 0xfeff };
|
||
|
|
||
|
enum EForceInit { ForceInit };
|
||
|
|
||
|
NAMESPACE_REDCRAFT_END
|