C ++ - 从宏参数中的参数列表中剥离类型

时间:2017-12-10 16:09:26

标签: c++ macros variadic variadic-macros

我有一个宏,它以参数列表作为参数,如下所示:

#define func(returnType, name, args)                  \
   static inline returnType fn_ ## name ## impl args; \
   DLL_EXPORT returnType fn_ ## name args {           \
      // What to do here?                             \
   }                                                  \
   static inline returnType fn_ ## name ## impl args  \

旨在像这样使用:

func(void, a, (int a, float b)) {
   std::cout << a << " " << b << "\n";
}

我的问题是我需要获取给定的参数列表,使用它来定义函数的头部并将参数传递给实现。

有没有办法从参数列表中去除类型,这样我就会留下&#34;(a,b)&#34; from&#34;(int a,float b)&#34;?

我尝试使用可变参数模板,但我需要使用extern&#34; C&#34;为了利用来自另一个应用程序的C ++库,它不知道如何编译C ++代码。因此,不知道如何处理名称修改等。 从我收集到的内容来看,我还没有找到任何方法来使用extern&#34; C&#34;来导出这些可变参数模板。

0 个答案:

没有答案