2013-01-24 73 views
1

我想写这种类型的函数:如何编写接受未知类型和参数个数的C++函数?

void Print(void* args ...) 
{ 
    while(args) 
    cout<<args[i]; 
} 

的funcdtion应该处理int和(的std :: string或字符*)

这可能吗?

+2

你想达到什么目的? –

+0

将变量类型/参数个数连接到一个字符串 – itamar

+0

我不确定'std :: initializer_list'是否可以工作。我使用了C++ 11的功能。但你可以试试 –

回答

6

你可以用可变参数模板做到这一点:

void Print() { } 

template <typename T, typename ...Args> 
void Print(T const & t, Args const &... args) 
{ 
    cout << t; 
    Print(args...); 
} 
+0

'std :: initializer_list'呢? –

+0

@NeelBasu:那该怎么办?想想'Print(5,“Hello”);'...... –

+2

@NeelBasu:单一类型,限制你如何调用它。 –

相关问题