Boost logo

Ublas :

Subject: Re: [ublas] Making explicit the conversion between unless types
From: Riccardo Rossi (rrossi_at_[hidden])
Date: 2016-06-28 13:04:02


This is just to be sure my previous email was received

Can anyone acknowledge receipt?

Riccardo
On 24 Jun 2016 3:49 p.m., "Riccardo Rossi" <rrossi_at_[hidden]> wrote:

> 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
>