日志
在模板函数中处理不同类型数据
2019-05-19 22:03
解决在模板函数中处理不同的数据类型有一些方法,在编译期间可以利用模板特化实现,运行期间可以利用多态、函数绑定等来实现。
方法一:利用模板特化来处理模板函数中的不同数据类型,而且类型中的属性也可以不同。 struct A { int m_a = 1; }; struct B { QString m_b; }; template <typename T> inline QString convert(T &data){} template <> inline QString convert<A>(A &a) { a.m_a++; return QString::number(a.m_a); } template<> inline QString convert<B>(B &b) { b.m_b = "this is B"; return QString(b.m_b); } int main(int argc, char *argv[]) { A a; a.m_a = 3; B b{"Hello B"}; auto convertA = convert(a); auto converBA = convert(b); return 0; } 二:利用多态处理模板函数中的不同数据类型,类型中的属性相同。 |