__COUNTER__ 宏是否可移植?

Is __COUNTER__ macro portable?(__COUNTER__ 宏是否可移植?)

本文介绍了__COUNTER__ 宏是否可移植?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I have a piece of code which uses __COUNTER__ macro to generate unique names for variables.

Is this code portable ? I know that GCC and MSVS support it. What's about other compilers ? Is the macro defined by standard (as far as I know before C++14 it wasn't).

解决方案

It's definitely not standard.

It's a compiler extension (GNU C extensions)

The common predefined macros are GNU C extensions.

and a Microsoft-specific one,

Microsoft-Specific Predefined Macros:

__ COUNTER __

also supported by clang as language extension.

The standard doesn't mention it anywhere.

这篇关于__COUNTER__ 宏是否可移植?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:__COUNTER__ 宏是否可移植?