libstdc++/9626: g++ accepts vector<vector<int> > v(2, 4);

Falk Hueffner falk.hueffner@student.uni-tuebingen.de
Sat Feb 8 13:48:00 GMT 2003


paolo@gcc.gnu.org writes:

> Synopsis: g++ accepts vector<vector<int> > v(2, 4);
> 
> State-Changed-From-To: analyzed->feedback
> State-Changed-By: paolo
> State-Changed-When: Sat Feb  8 13:36:01 2003
> State-Changed-Why:

>     On second thought, doesn't seem to me that your testcase is
>     illegal. You are asking for a size 2 vector of size 4 vectors:
>     there are no implicit conversions which should be prevented by
>     explicit, since 4 is the argument of the explicit vector(const
>     A& = A()) constructor of each of them and this seems perfectly
>     legal.  Agreed?

No. I pass a 4, but the constructor expects an A = vector<int>. The
only way to make a "vector<int>" from "4" is with an "explicit"
constructor.

-- 
	Falk



More information about the Gcc-bugs mailing list