我正在使用
Linux gcc环境,我需要初始化具有默认值的类的函数参数.
当我使用类的临时实例执行此操作时,会发生如下错误:“[argument参数]的默认参数具有type [class name].
例如:
当我使用类的临时实例执行此操作时,会发生如下错误:“[argument参数]的默认参数具有type [class name].
例如:
void foo(std::wstring& str = std::wstring())
error:’std :: wstring& amp; str’有类型’std :: wstring’
附:该代码编译时没有任何错误或警告与VC.
我如何初始化默认值?
解决方法
这是不应该编译的.你试图将一个rvalue绑定到一个非const引用.说std :: wstring const& str和它应该工作.