【发布时间】:2013-06-19 15:57:36
【问题描述】:
是否可以声明某个类型派生自 B 的模板函数?
我的目标是实现这样的目标:
template<class T : std::ostream> void write(T os) {
os << "...";
}
template<class T : std::string> void write(T s) {
// ...
}
编辑:我知道这不是一个可靠的示例,因为从字符串派生并不常见,但请注意,这只是一个示例。
所以欢迎任何解决方案,如解决方法,但是我希望能够显式实例化模板函数。
【问题讨论】:
-
您不需要模板。如果通过引用基类来获取参数,则可以传递从它派生的任何内容。
-
@jrok 我认为重点是他想使用模板
-
@jrok 我的目标是速度。 ;)
-
模板不应比常规内联函数快。如果您会产生副本,则通过引用传递会更快。我认为没有理由使用模板,除非您需要访问 T 的非继承成员。
标签: c++ templates inheritance return