我可以将赋值的结果传递给 C++ 中的函数吗?

cod*_*der 5 c++ function variable-assignment

我的问题是:“我可以将赋值的结果传递给 C++ 中的函数吗?”

我想这样做的原因是变量具有特定类型,例如“int”,因此我将值分配给变量并将整个内容传递给以“int”作为参数的重载函数。

这样做的主要原因是让代码更小更容易阅读,而不是:

val = 2
function(val);
Run Code Online (Sandbox Code Playgroud)

我得到:

function(val = 2);
Run Code Online (Sandbox Code Playgroud)

这可以吗?如果是这样,是否有惯例表明出于某种原因这是糟糕的编码实践?

谢谢,饲料

mas*_*oud 5

是的

每段 § 5.17 / 1

赋值运算符 (=) 和复合赋值运算符都从右到左分组。所有都需要一个可修改的左值作为它们的左操作数,并返回一个引用左操作数的左值。

After function(val = 2)2赋值给valthenval传递给函数的值。

谈论可读性并不容易,我个人不会在我的代码中使用这种方式。