将模板参数传递给基类,简洁表示法

时间:2017-04-07 08:29:36

标签: c++ templates inheritance

是否有更复杂的方法将参数传递给基本模板类?

template <class II, class ICI>
class GraphBase : public GraphBaseOfBase<II, ICI>
{ ... };

template <>
class GraphBase<std::vector<int>::iterator, std::vector<int>::const_iterator> :
    public GraphBaseOfBase<
        std::vector<int>::iterator,
        std::vector<int>::const_iterator>
{ ... };

1 个答案:

答案 0 :(得分:0)

您可以使用using缩短使用的主要类型,例如:

using vec_it = typename std::vector<int>::iterator;
using vec_cit = std::vector<int>::iterator;

然后

 template <>
 class GraphBase : public GraphBaseOfBase<vec_it, vec_cit>
 {
     //...
 };