首页 > 解决方案 > 是否有类似 `std::tie` 的东西用于将返回的结构中的值传递到现有变量中?

问题描述

我有一个像这样的代码:

std::tie(info.amount, info.price) = GetAmountAndPrice();

并且GetAmountAndPrice正在返回std::pair,所以它起作用了。

但是有一个代码审查建议将返回类型更改为 struct 所以很清楚返回值代表什么,我认为这是很常见的一点。

但是随着将返回类型从更改std::pair为某个结构,我不能使用std::tie来设置info.
(而且我显然不想创建返回结构的临时实例来加载值。)

什么是解决这个问题的简洁现代方法?我们使用 C++17,但我什至对 C++20 感到好奇,如果它有所改进的话。

标签: c++structstd-pairstd-tie

解决方案


推荐阅读