在实例化结构模板时出现问题
Problem instantiating struct template
如何实例化这个模板结构?
template<typename T,
template<typename, template <typename> class D= std::allocator
>class Z=std::vector
>
struct amen
{
Z<T,D<T> > cc; // i know D template class parameter is not visible , how do i do it?
};
int main(){
amen<int> moreAmen;
}
谁能告诉我怎么做? 你错了。应该是
template<typename U, typename D = std::allocator<U>
> class Z = std::vector
std::vector
的分配器不是模板。那么cc
的声明变成
Z<T> cc;
由于您为分配器提供了默认实参,因此不需要为它传递任何实参。如果您想这样做,则需要再次传递std::allocator<T>
或其他分配器
Z<T, std::allocator<T> > cc;
// or T<T, my::funny:allocator> cc;
模板模板实参的形参的默认实参不会"继承"到你的类/结构模板的相应模板形参。您需要像上面那样再次指定它(通过将std::allocator<U>
声明为默认模板参数)。
相关文章:
- 从C++实例化QML
- 错误 C2280 / 在 std::vector 中实例化对象时复制构造函数出现问题?
- 显式模板实例化问题
- 实例化函数模板的编译问题
- 模板函数实例化的可移植性问题
- 模板函数实例化 自定义数据类型的问题
- 字符串实例化问题
- 在 C++ 中实例化指向新对象的指针时出现问题
- 何时会隐式实例化导致问题
- Cygwin gcc编译器使用GAlib的模板实例化问题
- 复杂数据类型的模板实例化问题
- 类和函数模板实例化的Visual Studio dll导出问题
- c++中的工厂模式.实例化问题
- Qt继承和实例化问题
- c++中多态性基类和继承类实例化的问题
- 在实例化结构模板时出现问题
- 实例化模板化类的问题
- 实例化子类的多态性问题
- 对以下用户定义类片段中的模板实例化问题表示怀疑
- 继承——实例化问题