如果我有一个模板化的类,并且只有一个模板化的构造函数:
template <typename Tdst>
struct memsrc {
template <typename Tsrc>
memsrc(const Tsrc *src, ssize_t len);
};我在另一个类中有一个类的实例,也是类似的模板化:
template <typename Tdst>
struct other {
template <typename Tsrc>
other();
memsrc<Tdst> src_;
};我想在other的构造函数中初始化src_,我该怎么做呢?这一点:
src_ = memsrc<Tdst>::memsrc<Tsrc>(nullptr, 0); 不起作用:
rawio.h: In constructor ‘filesrc<Tdst>::filesrc(rawfile*)’:
rawio.h:578:49: error: expected primary-expression before ‘>’ token
mmapsrc_ = memsrc<Tdst>::memsrc<Tsrc>(mmap_.ptr(), mmap_.size());发布于 2018-08-07 22:49:29
你不能为模板化的构造函数提供显式的模板参数--它们必须被推断出来。你可能正在寻找像这样的东西
template <typename Tdst>
template <typename Tsrc>
other<Tdst>::other() : src_((Tsrc*)nullptr, 0) {}https://stackoverflow.com/questions/51729599
复制相似问题