diff options
author | AdrianV <adrian@veith-system.de> | 2018-04-15 13:43:01 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2018-04-15 13:43:01 +0200 |
commit | 0ce28d15cc9aff526a7733e40ae1ae495d4e8e55 (patch) | |
tree | 5194210604627fc7117acae8165ca65360638dad /lib/nimbase.h | |
parent | 70c0ff1be21d2a1fda6432fe2e5b7ae0953840ff (diff) | |
download | Nim-0ce28d15cc9aff526a7733e40ae1ae495d4e8e55.tar.gz |
Nim namespace for cpp (#7453)
- new option --usenamespace to generate nim cpp code in its own namespace Nim - minor changes for compatibility with the new Embarcadero = Borland C++-Builder (bcc)
Diffstat (limited to 'lib/nimbase.h')
-rw-r--r-- | lib/nimbase.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/nimbase.h b/lib/nimbase.h index a03407c4f..20ac9979b 100644 --- a/lib/nimbase.h +++ b/lib/nimbase.h @@ -264,6 +264,11 @@ __clang__ # define HAVE_STDINT_H #endif +/* wrap all Nim typedefs into namespace Nim */ +#ifdef USE_NIM_NAMESPACE +namespace Nim { +#endif + /* bool types (C++ has it): */ #ifdef __cplusplus # ifndef NIM_TRUE @@ -413,8 +418,8 @@ typedef struct TStringDesc* string; # endif #endif -typedef struct TFrame TFrame; -struct TFrame { +typedef struct TFrame_ TFrame; +struct TFrame_ { TFrame* prev; NCSTRING procname; NI line; @@ -476,6 +481,10 @@ static inline void GCGuard (void *ptr) { asm volatile ("" :: "X" (ptr)); } "error: 'Nim_and_C_compiler_disagree_on_target_architecture' declared as an array with a negative size" */ typedef int Nim_and_C_compiler_disagree_on_target_architecture[sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8 ? 1 : -1]; +#ifdef USE_NIM_NAMESPACE +} +#endif + #ifdef __cplusplus # define NIM_EXTERNC extern "C" #else |