gpt4 book ai didi

c++ - C++ 中的嵌套模板

转载 作者:搜寻专家 更新时间:2023-10-31 00:46:56 26 4
gpt4 key购买 nike

我想为代码重用和特化创建一个函数模板。

函数签名类似于 int DoStuff(FooBar &a);其中 FooBar 是 Foo<BarX> ,也就是说,我无法预先输入定义的模板实例。

我试着做 template <class T> int DoStuff(Foo<T> &a);template <class T> int DoStuff(T &a); ,但我收到了常规的神秘链接器错误,这些错误一点帮助也没有。

也找不到关于此类主题的教程,只是为了简化模板使用而找到的。

代码会这样调用:

Foo<Bar1> var1;
int res1 = DoStuff(var1);
Foo<Bar2> var2;
int res2 = DoStuff(var2);
etc.

我是不是在尝试做一些不可能的事情?

最佳答案

您建议的代码:template <class T> int DoStuff(Foo<T> &a);应该管用。请注意,与模板化结构/类一样,函数代码必须在使用函数的位置可见(即,函数代码通常必须位于 header 中)。

关于c++ - C++ 中的嵌套模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4561286/

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