c++ - 在编译时返回唯一字符串的宏

标签 c++ objective-c c objective-c-runtime

是否有一个宏可以在编译时返回一个唯一字符串,以便它可以用作 objective-c 类的名称?

我在想这样的事情:

#define my_macro(params) \
@implementation my_macro_function_giving_unique_string_(MyTrickyRuntimeExtension) \
  //Do stuff \
@end \

最佳答案

有一个在 Visual Studio 中预定义的宏 __COUNTER__ 可以提供帮助

我使用了iammilind建议

#define UNIQUE2(param) YourClassBaseNames##param
#define UNIQUE1(param) UNIQUE2(param)
#define UNIQUE UNIQUE1(__COUNTER__)

class UNIQUE
{

};

class UNIQUE
{

};

计数器 - 返回新的计数时间

引用:http://msdn.microsoft.com/en-us/library/b0084kay(v=vs.80).aspx

它在 GCC 中也可用

关于c++ - 在编译时返回唯一字符串的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14397866/

相关文章:

C++ lambda 语法

c++ - dllimport 和 dllexport 之间的链接

iphone - 在 iphone 中以编程方式列出所有 wifi SSID

c - 当使用更多迭代时,C 中的 asin() 函数返回 NaN

c - 为什么 "char"变量中可以存储多个字符?

java - JNI 检测到应用程序错误 : use of invalid jobject when calling NewObject for innerclass

java - 如何将 android.content.Context 参数(从 native 代码)发送到 Java fct(通过 JNI)

ios - NavigationController 中的 TabBarController 不会在 viewControllers 中显示 TabBar

objective-c - 如何在 cocoa 中获取系统语言环境和系统语言

c - 如何纠正从客户端读取数据的套接字编程错误?