This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Cannot convert int (aka NULL) to std::vector<double*>::value_type
- From: mmcwilli at uvic dot ca
- To: "GNU GCC" <gcc-help at gcc dot gnu dot org>
- Date: Mon, 4 Feb 2013 20:08:25 -0800
- Subject: Cannot convert int (aka NULL) to std::vector<double*>::value_type
Hello All
I have a compilation error in a very large program. We have managed to
isolate the problem with the following test problem:
#include <vector>
#include <iostream>
using namespace std;
int main()
{
double* myPointer=NULL; // no error on this line
vector<double*> myVect(1,NULL); // error on this line
return 0;
}
Compiling this spits out the error:
Cannot convert 'int' to 'std::vector<double*>::value_type {aka double*}'
When I compile this on GNU gcc compiler version 4.5.1 I do not get this
error. When I compile it on GNU gcc compiler version 4.7.1 I get the
error.
Note that this error occurs on a colleagues computer that I do not have
access to so I cannot give the exact source code and the exact error and
all the other details.
Since the first reference to NULL works then we can conclude that NULL is
defined and it can be used to initialize pointers. However when NULL is
passed as an initialization to a std::vector container it is no longer
type compatible.
Is this a bug in the 4.7.1 compiler or did the compiler change to conform
to some standard that does not allow vector's to initialized to NULL.
I just want to check with you all before I submit it as a bug. Any
comments would be much appreciated!
Thanks
Mike