gpt4 book ai didi

c++ - 在嵌套函数模板中使用模板类型名

转载 作者:行者123 更新时间:2023-11-28 04:59:47 27 4
gpt4 key购买 nike

好吧,我正在为模板苦苦挣扎。在 this我了解到的问题,根本不可能将类型说明符传递给函数,所以我的下一个方法是在 <> 中传递类型.

想象一个函数模板 foo<U>() ,它是模板类的成员函数 A .所以如果我创建一个对象 A<T> a我可以打电话a.foo<U>()任何类型。

我要如何编写等效的函数模板才能通过 aU喜欢wrappedFoo<U>(a)

重要需要符合 C++98

最佳答案

您可以执行以下操作:

template <typename U, typename T>
XXXX /* See below */
WrappedFoo(/*const*/ A<T>& a)
{
return a.template foo<U>();
}

困难的部分是没有decltype 的返回类型C++11 的。

因此,如果返回类型确实取决于参数类型,您可以创建一个特征,例如:

template <typename U, typename T>
struct Ret
{
typedef U type;
};

template <typename T> struct Ret<T, A<T> >
struct Ret
{
typedef bool type;
};

然后替换XXXX通过 typename Ret<U, T>::type

关于c++ - 在嵌套函数模板中使用模板类型名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46364828/

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