gpt4 book ai didi

c++ - 根据先前的模板参数为模板参数分配默认值

转载 作者:行者123 更新时间:2023-12-05 03:19:04 25 4
gpt4 key购买 nike

<分区>

我有这样一个程序:(请忽略它看起来多么荒谬,它只是一个可重现的例子)

using MyUInt = unsigned int;
using MyLInt = long int;

template<class T1, class T2>
T1 fn(const T2& arg){
return T1(arg);
}

int main() {
std::cout << fn<int, MyUInt>(1);
std::cout << fn<double, MyLInt>(1);

return 0;
}

是否可以根据 T1T2 分配一个默认值,这样我就不必手动声明它了?有哪些替代方案?

我正在寻找类似的东西

using MyUInt = unsigned int;
using MyLInt = long int;

template<class T1, class T2 = typename std::is_same<T1, int>::value ? MyUInt : MyLInt>
T1 fn(const T2& arg){
return T1(arg);
}

int main() {
std::cout << fn<int>(1);
std::cout << fn<double>(1);

return 0;
}

我正在使用 C++17。

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