小编Aus*_*son的帖子

模板化类参数重载

我试图解决为什么尝试编译这个问题

#include <iostream>
template <unsigned int ROWS,unsigned int COLS>
class Matrix{
    public:
        double dotProd(const Matrix<1,COLS>& other){
            static_assert(ROWS==1,"dotProd only valid for two vectors");
            return COLS;//place holder for dot product with row vectors
        }
        double dotProd(const Matrix<ROWS,1>& other){
            static_assert(COLS==1,"dotProd only valid for two vectors");
            return ROWS;//place holder for dot product with col vectors
        }
};
int main(){
    Matrix<1,32> bob;
    Matrix<1,32> fred;
    std::cout<<bob.dotProd(fred)<<std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这给了我这个错误:

overloadedTemplateMethod2.cpp: In instantiation of ‘class Matrix<1u, 1u>’:
overloadedTemplateMethod2.cpp:17:32:   required from here
overloadedTemplateMethod2.cpp:9:16: error: ‘double Matrix<ROWS,COLS>::dotProd(const Matrix<ROWS, …
Run Code Online (Sandbox Code Playgroud)

c++ templates overloading

6
推荐指数
1
解决办法
91
查看次数

标签 统计

c++ ×1

overloading ×1

templates ×1