假设我有两个类 Foo1 和 Foo2。
我想创建一个函数 bar,该函数获取指向 std::vector> 或 std::vector> 的引用,但始终返回 std::vector>:
template std::vector> bar(std::vector>&)
不幸的是,编译器不喜欢 > 部分。 解决这个问题的一种方法是提供两个重载,但是否有办法使上述内容正确?
我想创建一个函数 bar,该函数获取指向 std::vector> 或 std::vector> 的引用,但始终返回 std::vector>:
template std::vector> bar(std::vector>&)
不幸的是,编译器不喜欢 > 部分。 解决这个问题的一种方法是提供两个重载,但是否有办法使上述内容正确?
Y
也可以使用typename
而不仅仅是class
来声明。T
参数总是可以这样声明。这为语言增加了一些语法上的一致性。 - emsrtemplate
括号内专门使用class
,这样可以更容易地搜索typename T::type
结构。 - TemplateRex