doxygen 中的右值引用参数应该是什么类型? [进] 还是 [进、出]?

What kind of type should r-value reference parameter be in doxygen? [in] or [in, out]?

/**
 * @param[?] u
 */
T func(U&& u);

参数 u 可以被 func 修改,而修改后的状态应该被忽略,因为它是右值引用。

我还没有找到任何相关信息,包括 Doxygen 手册。

你不应该考虑“这是一个参考,所以这意味着 X”。您应该考虑 u 对函数意味着什么以及函数用它做什么。仅从 u 移动不足以将其声明为 [inout] 参数。 [inout][out] 应在函数故意为其设置一个用户预期使用的值时使用。如果您从右值引用参数移动,则用户的参数 不再具有值 。这是“输出”的对立面。

确实,右值引用参数不能绑定到左值参数(直接)。这意味着用户不能只调用 func(some_variable);他们必须明确地搬进去:func(std::move(some_variable));。这种拼写感觉不像是输出值;它正在将某些东西 转移到 函数中。如果用户期望 some_variable 有一个新值,这确实是一个奇怪的界面,特别是因为 func(some_type()); 会有效地丢弃“输出”值。