【发布时间】:2010-10-22 17:10:20
【问题描述】:
我习惯写这样的模板:
template<typename T>
void someFunction(SomeClass<T> argument);
但是 - 现在我在另一个线程中遇到了这样写的模板:
template<U>
void someFunction(SomeClass<U> argument);
据我所知,可以互换使用“typename”和“class”(除了有关嵌套类型的一些细节......)。但是如果我根本不把关键字放在括号中是什么意思?
谢谢!
有问题的线程: Problems writing a copy constructor for a smart pointer
【问题讨论】:
-
什么是
U?它是int等的typedef? -
我不知道——如果是的话,那有意义吗?我也不明白“U”是否被“int”取代
-
在这种情况下,它可能是一个非类型参数(例如,实例化为
someFunction<10>)。顺便说一句,问题不在于模板函数,而在于构造函数。 -
您的代码显然是从内存中键入的,因为它有语法错误(没有函数返回类型)。请复制并粘贴 准确代码,以便我们给出明确的答案,否则每个人都只是猜测。