首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么实现重复调用一个函数,非循环

2013-07-16 
如何实现重复调用一个函数,非循环#define DUP_CALL(func, param, nTimes)比如我调用:DUP_CALL(puts, Hell

如何实现重复调用一个函数,非循环
#define DUP_CALL(func, param, nTimes)

比如我调用:
DUP_CALL(puts, "Hello, world!", 3);

编译器将会自动生成——
puts("Hello, world!");
puts("Hello, world!");
puts("Hello, world!");

[解决办法]
http://topic.csdn.net/u/20110902/15/0329803b-c428-47f5-8dc2-6fd0c34b9e55.html?94808
[解决办法]
可以把宏弄成循环?

类似
#define FOR(count) {for(int i=0; i<count; i++) printf("xxx");}

或者

递归宏,不过要写太多

或者就使用
luciferisnotsatan说的那个TTL库
[解决办法]

引用:
俺先上代码,然后你们再继续讨论:
话说decltype还不是太给力啊,还是typeof更好些。

C/C++ code

#include <stdio.h>

template <typename RET_TYPE, typename PARAM_TYPE, RET_TYPE FUNC(PARAM_TYPE), unsigned N>
struct DupStruct
{
 ……

好像是模板元编程, 你把3改成1000试试
[解决办法]
我来领分了
[解决办法]


template<unsigned n>
class MySum
{
public:
enum{ sum =  n + MySum<n-1>::sum};
};

template<>

class MySum<0>
{
public:
enum{ sum = 0};
};




我错了,15楼的递归也不是。。
但是在500时编译器受不了了,这倒不假。

热点排行