Hi Cubbi
Thanks a tonne for responding to this.
I looked into this through a couple forums and have come up with many resolutions and explanations. For the benefit of everyone else I am posting the results here. So yes this was an error in the standard:
http://open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#438
http://open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#1234
This was addressed in the C++11 standard and then reported as a bug for GCC and fixed in the 4.8.0 version:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43813
Some details on the bug is that it resolves to the following constructor: vector(iterator,iterator) as appose to vector(size_t,value_t). This error has been a problem since versions earlier than 4.5.1. It only happens on 32 bit versions of gcc.
Some valid one line work-a-arounds:
1) redefine NULL as 'nullptr' for the C++11 standard
2) redefine NULL as '0L' as it is in the 64bit version
Alternate fixes for each instance of vector<T*> myVect(size,NULL):
1) vector<T*> myVect(size,0L)
2) vector<T*> myVect(size,nullptr) for the C++11 standard
3) vector<T*> myVect(size,(T*)NULL)
4) vector<T*> myVect(size,static_cast<T*>(NULL))
I need to check to see if this works on my colleagues computer. My version of GCC works.
Take Care
Mike