ideas icon indicating copy to clipboard operation
ideas copied to clipboard

Стандартизировать макрос __COUNTER__

Open kov-serg opened this issue 1 year ago • 2 comments

Стандартизировать макрос __COUNTER__

Что бы не городить такое https://github.com/madmurphy/zen.h/blob/master/zen.h

Полезные ссылки: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros https://clang.llvm.org/docs/LanguageExtensions.html#builtin-macros

kov-serg avatar Sep 07 '23 20:09 kov-serg

В репозитории, на который вы дали ссылку, написано:

There are two main reasons for implementing a novel counter for the C preprocessor other than the built-in (and non-standard) COUNTER. The first reason is that COUNTER is not flexible: when two or more headers use it, the values that this yields are not predictable. The second and most important reason is that COUNTER is not reusable and gets increased every time it is invoked, making the storage of its yielded values within the preprocessor environment virtually impossible.

Это уже несколько причин его не стандартизировать.

xiran56 avatar Jan 01 '24 08:01 xiran56

Ничто не мешает сделать нечто что будет увеличиваться при его чтении, но на уровне компиляции. Типа std::source_location::counter() __COUNTER__ у многих компиляторов есть из коробки. Но в стандарте ничего подобного нет.

kov-serg avatar Jan 01 '24 21:01 kov-serg