Making explicit the conversion between unless types

Riccardo Rossi <[email protected]>
Newsgroups gmane.comp.lib.boost.ublas
Message-ID <CAOVdALyExsdtFVTsERuhnxth55YoswkM4Hj024MXsR9w08r+cA@mail.gmail.com>
Dear all,

Right now the following code

#include <iostream>
#include <iostream>
#include <boost/numeric/ublas/matrix.hpp>

void f(
    const boost::numeric::ublas::bounded_matrix<double,10,1>&
should_be_10by1
     )
{
}

int main() {
    boost::numeric::ublas::bounded_matrix<double,10,1> correct;
    boost::numeric::ublas::bounded_matrix<double,1,10> wrong;
    f(correct);
    f(wrong); //how can this be compiled??? - i expect the type of wrong to
be ...wrong for f!!
}

Does compile, effectively bypassing type safety.

Essentially if I use a reference in defining a function it is because I don
t want to pass by value.
In this case a copy is being done...allowed by the fact that the reference
I pass is constant.

Couldn't t the conversion be made explicit? That would potentially uncover
many bugs...

Regards
Riccardo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.