C++类模板派生自模板化类:有没有更好的写法?

lztngnrs  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(109)

我想知道下面的代码是否可以写得更好:

template< typename DataType >
class MyDerivedClass : public MyBaseClass< std::vector< DataType > >
{
public:
    typedef std::vector< DataType> ListDataType;

    // ...
};

具体来说,我希望删除对'std::vector'的额外提及,但这当然是非法的:

template< typename DataType >
class MyDerivedClass : public MyBaseClass< ListDataType >
{
public:
    typedef std::vector< DataType> ListDataType;

    // ...
};

有什么想法吗?

wnavrhmk

wnavrhmk1#

如果目标只是避免两次写入std::vector,则可以为其定义一个额外的helper模板参数。

template< typename DataType, typename U = std::vector<DataType> >
class MyDerivedClass : public MyBaseClass< U >
{
public:
    using ListDataType = U;
    // ...
};

相关问题