gpt4 book ai didi

c++ - 使用模板时的类型推断

转载 作者:太空狗 更新时间:2023-10-29 19:49:12 25 4
gpt4 key购买 nike

所以这就是我想做的:我使用 std::pair ,但我肯定想使用元组或几乎任何类型的模板来做同样的事情。分配对变量时,我需要键入如下内容:

T1 t1;
T2 t2;
std::pair<T1,T2> X;
X = std::pair<T1,T2> (t1, t2);

有没有办法省略第二个<T1,T2>在创建新对时,让编译器猜测,使用 X 的类型(我显然正在尝试创建 pair<T1,T2> )或 t1t2的类型(我正在构建一个带有 T1 对象和一个 T2 对象的对,我想要的对有可能是 pair<T1,T2> 类型)?

最佳答案

是的,但是模板参数推导只适用于函数模板,不适用于类模板的构造函数。为此,该库提供了一个功能:

X = std::make_pair(t1, t2);

在 C++11 中,可以从初始化列表中初始化和分配对和元组:

X = {t1, t2};

auto可用于自动指定初始化器的类型,因此您根本不需要指定模板参数:

auto X = std::make_pair(t1, t2);

关于c++ - 使用模板时的类型推断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12192955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com