vendredi 25 août 2017

Why does the debugger always skip one line in this program?

I am writing a template class of a matrix named Matrix, and I rewrite the default constructor like this:

template<typename _Tp, size_t m, size_t n> inline
Matrix<_Tp, m, n>::Matrix()
{
    for(size_t i = 0; i != m*n; ++i) val[i] = _Tp(0);
}

And in my test file I write this:

SC::Matrix<double, 3, 3> Mat();

All these are good when I build the program. But I always get wrong result when I run the test program.

And When I try to find reasons I find that the debugger always skip over definition of Mat; At the first I think that it may because I modified the files after I build this program, so I delete all the build results(automatically generated by cmake) and rebuild it. But it's useless, the problem is still there.

Is there anyone can help me find the reason? Did I provide enough information for this problem?

Aucun commentaire:

Enregistrer un commentaire