diff --git a/.clang-format b/.clang-format index ab89af92..26a8b84b 100644 --- a/.clang-format +++ b/.clang-format @@ -135,7 +135,7 @@ JavaScriptWrapImports: true KeepEmptyLinesAtTheStartOfBlocks: false LambdaBodyIndentation: Signature MacroBlockBegin: "PRIVATE_DEFINITION_START|STATIC_INITIALIZER_BEGIN" -MacroBlockEnd: "PRIVATE_DEFINITION_END|STATIC_INITIALIZER_END" +MacroBlockEnd: "PRIVATE_DEFINITION_END|PRIVATE_DEFINITION_FINISH|STATIC_INITIALIZER_END" MaxEmptyLinesToKeep: 2 NamespaceIndentation: None ObjCBinPackProtocolList: Auto diff --git a/libs/main/core/pibase_macros.h b/libs/main/core/pibase_macros.h index 3f597634..6dc84470 100644 --- a/libs/main/core/pibase_macros.h +++ b/libs/main/core/pibase_macros.h @@ -12,7 +12,7 @@ */ /* PIP - Platform Independent Primitives - Base macros + Base macros Ivan Pelipenko peri4ko@yandex.ru This program is free software: you can redistribute it and/or modify @@ -333,9 +333,10 @@ typedef long long ssize_t; __PrivateInitializer__ __privateinitializer__; # define PRIVATE_DEFINITION_START(c) struct c::__Private__ { -# define PRIVATE_DEFINITION_END(c) \ - } \ - ; \ +# define PRIVATE_DEFINITION_FINISH(c) \ + } \ + ; +# define PRIVATE_DEFINITION_INITIALIZE(c) \ c::__PrivateInitializer__::__PrivateInitializer__() { \ p = new c::__Private__(); \ } \ @@ -350,6 +351,10 @@ typedef long long ssize_t; p = new c::__Private__(); \ return *this; \ } +# define PRIVATE_DEFINITION_END(c) \ + PRIVATE_DEFINITION_FINISH(c) \ + PRIVATE_DEFINITION_INITIALIZE(c) + # define PRIVATE (__privateinitializer__.p) # define PRIVATEWB __privateinitializer__.p