gpt4 book ai didi

返回类型为模板化类型的 C++ 模板

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:25 25 4
gpt4 key购买 nike

我想写一个这样的函数:

  template<class T1, T2>
T2 getvalue(T1 in)
{
T2 tmp;

// do some work here
return T2;
}

然后这样调用:

  float x[100];
int x=getvalue<int>(x);

但是我好像做不到。这个想法是编译器从使用中检测到 T1,但我定义了返回类型。但是上面的代码会产生错误。

关于我如何做到这一点有什么建议吗?

最佳答案

当您显式指定函数模板参数时,它们会从左边开始填充;推导出所有剩余的参数。所以你必须这样写:

template <typename T, typename U>
T getvalue(U in)
{
return in;
}

用法:

auto x = getvalue<int>(1.5);     // x is an "int", and U is deduced as "double"

关于返回类型为模板化类型的 C++ 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20569717/

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