c++ - 如何专门化模板模板的功能?

标签 c++ templates operator-overloading partial-specialization

如何重写模板模板特化的功能?

我正在用 vector 的 vector 构建一个 C++11 矩阵。我已经实现了 vector (不能使用 std::vector )并且我希望矩阵继承自 myVector<myVector<T>> . myVector<T>工作正常,但是 myVector<myVector<T>>有一些我想覆盖的功能(删除它们)。我该怎么做?

代码:

template <typename T> class myMatrix : public myVector<myVector<T>>{
 ...
 //scalar multiplication
 myVector<T> MyVector<T>::operator*(const T& scalar) const{...}
}

我想删除operator*功能仅来自 myVector<myVector<T>>特化(这样 myVector<int> 实例将能够使用函数,但 myVector<myVector<int>> 实例不能)。

最佳答案

也许使用删除?

class A
{
    public:
    A(){;};
    int some_function();
};

class B: public A
{
    public:
    B():A(){;};
    int some_function() = delete;
};

关于c++ - 如何专门化模板模板的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54207499/

相关文章:

android - 使用 std::map 时 _Rb_tree_rebalance_for_erase 中的空指针取消引用崩溃

c++ - VS10 C++ 错误 C2833 : 'operator string' is not a recognized operator or type

c++ - 除了样式检查之外,是否有方便的工具来自动检查 C++ 编码约定?

c++ - 重载的新运算符每次都为新对象返回 NULL 内存

c++ - lambdas 中的模板参数列表中的 auto 是标准的一部分吗?

处理取消引用语法的 C++ 泛型类

c++ - 在指针上定义运算符重载

python - 是否可以为 native 数据类型重载运算符?

c++ - nullptr 的类型是什么?

C++ 模板参数作为函数调用名称