C ++:重载var arg函数

时间:2015-11-09 13:11:48

标签: c++ overloading variadic

使用g ++。 我希望在没有任何警告的情况下编译以下代码。

void f(const char* b)
{
  std::cout<<"char* called"<<std::endl;
}

void f(const char* format,...)
{
  std::cout<<"char*,... called"<<std::endl;
}

f("hello");
f("hello",1);  

编译期间出错。暧昧的电话。似乎编译器无法区分这两个函数。但是当我定义这样的第二个函数时:

void f(char* format,...)
{
  std::cout<<"char*,... called"<<std::endl;
}

它编译但警告 警告:已弃用从字符串常量转换为char *

const不能用于重载函数,但它仍然会受到影响。 这里发生了什么?

0 个答案:

没有答案