C++ __COUNTER__ 定义

问题描述 投票:0回答:2

我的电脑上安装了两个版本的 C++ 编译器。其中一个识别

__COUNTER__
宏,另一个不识别。

在做了一些研究以使程序在两者中都可以编译之后,我还没有遇到

__COUNTER__
的宏定义。这是编译器完成的一些特殊宏,还是我可以将
__COUNTER__
的定义复制到我的源代码中?如果我可以复制它,我需要什么代码?

c++ macros c-preprocessor
2个回答
10
投票

__COUNTER__
是几个常见编译器中的内置。无法手动定义。如果您遇到不支持它的编译器,最好的选择可能是在将代码输入编译器之前通过支持它的预处理器运行您的代码。


2
投票

这是一个特殊的宏,由 Visual Studio 引入,我想现在 GCC 也支持了。

它基本上提供了一个唯一的整数计数器,可用于生成唯一标识符。

来自 GCC 发行说明

添加了新的预定义宏

__COUNTER__
。它扩展为从 0 开始的连续整数值。结合
##
运算符,这提供了一种生成唯一标识符的便捷方法。

如果编译器无法使用它,您可以使用静态变量轻松模仿行为。但我不确定你在编译什么,所以我不确定这个计数器在你可用的代码中是如何使用的。

© www.soinside.com 2019 - 2024. All rights reserved.