是__COUNTER__宏可移植的
Is __COUNTER__ macro portable?
我有一段代码,它使用__COUNTER__
宏为变量生成唯一的名称。
这个代码是可移植的吗?我知道GCC和MSVS支持它。其他编译器呢?宏是由标准定义的吗(据我所知,在C++14之前它不是)。
这绝对不是标准。
这是一个编译器扩展(GNU C扩展)
常见的预定义宏是GNU C扩展。
和微软特有的
Microsoft特定预定义宏:
__计数器__
clang也支持作为语言扩展。
标准中没有提到它。
GCC手册"通用预定义宏"一节规定
常见的预定义宏是GNU C扩展。
我在C99、C11或C++11中也从未见过这个宏。
至于实用的便携性:Clang也支持它。
似乎否。当我在标准pdf上ctrl+f"__COUNTER__"时,我找不到任何>o<
相关文章:
- C++Union/Struct位域的实现和可移植性
- 具有Qt事件循环的可移植通用共享库设置
- 没有执行策略的 std::transform_reduce 是可移植的吗?
- 如何在 c++ 中正确指定 #include 路径以使程序可移植
- 创建异构顶点数据数组的可移植方法
- FlatBuffers/Protobuf 中是否有支持任意 24 位有符号整数定义的可移植二进制序列化架构?
- 静态库可移植性
- 从非类型模板参数声明 constexpr 数组的可移植方法
- C++:Unicode 字符串文字的可移植性
- 如何使Visual Studio 2017 C++项目在计算机之间更具可移植性
- 尝试将 sfml 和 c++ 与 Windows 10 上的可移植 vscode 链接起来
- 在C++中获取命名空间名称的任何可移植技巧
- STR这个实现是否安全且可移植?
- 编写 std::copysign 的可移植 SSE/AVX 版本
- 是可移植的包装结构
- 将参数推送到调用堆栈 (C++) 的可移植方法
- 在为视频游戏实施基本的二进制序列化时,请担心可移植性
- 如何以可移植方式删除名称为 wchar_t 类型的文件C++
- Xcode 8.3.2 中的错误警告:文件的非可移植路径 - 指定的路径与磁盘上的文件名不同
- 格式化说明符以可移植地打印 C++11 中的 std::uint64_t 变量