【发布时间】:2013-04-16 01:39:08
【问题描述】:
有没有办法像定义可变参数宏一样定义可变参数模板宏?
例如,如果定义可变参数宏:
#define PRINT_STRING(fmtId, ...) { \
CString fmt; \
fmt.FormatString(fmt, ##__VA_ARGS__); \
cout << fmt << endl; }
我们可以定义如下:
#define PARSE_FUNCTION(functionName, typename...) \
std::function<int(typename...)> m_##functionName(){ \
return (std::function<int(typename...)>) functionName; }
【问题讨论】:
-
什么?你能更详细地解释你想要什么吗,我没明白...
-
宏和模板不是一回事。这看起来像一个 XY 问题。解释你想要实现的目标是什么,而不是你试图如何做到这一点。
-
谢谢,是的,我认为这也是一个愚蠢的问题 :)
-
@Nicol:我无法理解你的评论!为什么有人不应该编写一个包含模板的宏?宏不是 c/c++ 不好的一面,这不是问题,但仍有理由使用它们。确实:我也看不懂代码示例:-)
-
@Klaus:这与是否有人可以将模板放入宏中无关。就是没有“宏模板”这样的东西。他们做不同的事情。
标签: c++ c++11 variadic-templates