C++ Tuple 库 - forward_as_tuple
描述
它构造一个元组对象,该对象具有对 args 中元素的右值引用,适合作为参数转发给函数。
声明
以下是 std::forward_as_tuple 的声明。
C++98
template<class... Types> tuple<Types&&...> forward_as_tuple (Types&&... args) noexcept;
C++11
template<class... Types> tuple<Types&&...> forward_as_tuple (Types&&... args) noexcept;
C++14
template<class... Types> constexpr tuple<Types&&...> forward_as_tuple (Types&&... args) noexcept;
参数
args − 它包含构造元组应包含的元素列表。
返回值
它返回一个适当类型的元组对象来保存参数。
异常
No-throw guarantee − 这个成员函数从不抛出异常。
数据竞争
此调用未引入任何内容。
示例
在下面的 std::forward_as_tuple 示例中。
#include <iostream> #include <tuple> #include <string> void print_pack (std::tuple<std::string&&,int&&> pack) { std::cout << std::get<0>(pack) << ", " << std::get<1>(pack) << '\n'; } int main() { std::string str ("Tutorialspoint.com"); print_pack (std::forward_as_tuple(str+" sairamkrishna",25)); print_pack (std::forward_as_tuple(str+" Gopal",22)); print_pack (std::forward_as_tuple(str+" Ram",30)); return 0; }
输出应该是这样的 −
Tutorialspoint.com sairamkrishna, 25 Tutorialspoint.com Gopal, 22 Tutorialspoint.com Ram, 30