首页 > 怎么判断C++函数默认参数在调用时是否被赋值(还是使用了默认参数)

怎么判断C++函数默认参数在调用时是否被赋值(还是使用了默认参数)

例如下面的例子,能否(如何)区别fn1的两次调用。(与Common Lisp中的函数可选参数相似)
我刻意传递了与默认参数相同的值,防止仅仅使用比较值的方法区分。
Linux系统,编译器为g++ 4.7.2。可以利用编译器特性。

#include <iostream>  
void fn1(int a,int b=10);  
  
void fn1(int a,int b)  
{  
    std::cout<<"a="<<a<<" b="<<b<<std::endl;  
}  
  
int main(void)  
{  
    fn1(1);  
    fn1(1,10);  
    return 0;  
}
【热门文章】
【热门文章】