引用参数类型,可以设置缺省值吗?
比如,以下代码是否合法?声明
voidfun ( int &W = 6 ) ;
定义
voidfun ( int &W ){
W = W * 10;
cout<<W<<endl;
};
调用方法:
int a=3
fun(a) ;
fun() ;
看起来可以的
https://en.cppreference.com/w/cpp/language/default_arguments
void f1(int*=0); // Error, '*=' is unexpected here
void g1(const int&=0); // Error, '&=' is unexpected here
void f2(int* = 0); // OK
void g2(const int& = 0); // OK
void h(int&&=0); // OK even without spaces, '&&' is a token here
—— 来自 鹅球 v3.3.92 不行,得是右值引用吧
voidfun ( int &&W = 6 ) ;
voidfun ( int &&W ){
W = W * 10;
cout<<W<<endl;
}
然后调用
fun(std::move(a));
fun();
页:
[1]