我想写这种类型的函数:如何编写接受未知类型和参数个数的C++函数?
void Print(void* args ...)
{
while(args)
cout<<args[i];
}
的funcdtion应该处理int和(的std :: string或字符*)
这可能吗?
我想写这种类型的函数:如何编写接受未知类型和参数个数的C++函数?
void Print(void* args ...)
{
while(args)
cout<<args[i];
}
的funcdtion应该处理int和(的std :: string或字符*)
这可能吗?
你可以用可变参数模板做到这一点:
void Print() { }
template <typename T, typename ...Args>
void Print(T const & t, Args const &... args)
{
cout << t;
Print(args...);
}
'std :: initializer_list'呢? –
@NeelBasu:那该怎么办?想想'Print(5,“Hello”);'...... –
@NeelBasu:单一类型,限制你如何调用它。 –
接听
concatenation variable type/number of arguments to one string
无需编写你自己的功能,只需使用一个std::stringstream
:
std::stringstream ss;
ss << intVar << stringVar << whatever;
我很好奇为什么这个答案被低估了 –
应该是'stringstream'与“m” – 0x499602D2
你想达到什么目的? –
将变量类型/参数个数连接到一个字符串 – itamar
我不确定'std :: initializer_list'是否可以工作。我使用了C++ 11的功能。但你可以试试 –