无法将类对象转换为函数默认参数中的参考

Cannot convert class object to reference in function default parameter

本文关键字:参数 默认 参考 函数 对象 转换      更新时间:2023-10-16

我有一个函数声明,其中一个参数是类构造函数默认参数,如:

int someFunction(int seed, int x, Metrics& metrics = Metrics(size));

大小为const double初始化为41.64

我将此功能移植到Linux,并且正在遇到GCC(v4.8.5(的问题。该代码在MS Visual Studio 2008中的编译良好,但不使用GCC。

我尝试过dynamic_cast<Metrics&>(Metrics(size)),但这不起作用。

我从GCC遇到的错误是:

错误:无法将'指标(4.164e 1(从"指标"转换为"指标"&amp;'

阅读了@francoisandrieux链接的问题后,我通过更改为:

在GCC上获得了编译。
int someFunction(int seed, int x, Metrics* metrics = &Metrics(size));