c++ - compiler bug?
- David Medlock (45/45) Jun 27 2004 Hello.
- Walter (2/2) Jun 27 2004 Can you reproduce a complete code snippet I can compile to see the probl...
- David Medlock (28/34) Jun 28 2004 problem?
- Walter (1/1) Jun 28 2004 I can take it from here, thanks!
- David Medlock (8/11) Jun 28 2004 Cool!
- Walter (3/12) Jun 29 2004 Yes.
Hello. Here is a snippet of the code I am compiling(part of a commercial package): template<class T> class Vector { protected: U32 mElementCount; U32 mArraySize; T* mArray; bool resize(U32); public: Vector(const U32 initialSize = 0); Vector(const U32 initialSize, const char* fileName, const U32 lineNum); Vector(const char* fileName, const U32 lineNum); Vector(const Vector&); ~Vector(); typedef T value_type; typedef T& reference; typedef const T& const_reference; typedef T* iterator; typedef const T* const_iterator; typedef S32 difference_type; typedef U32 size_type; ... void insert(iterator, const T&); void erase(iterator); ... void push_front(const T&); void push_back(const T&); void pop_front(); void pop_back(); ... }; z:/torque/engine\core/tVector.h(102) : Error: type qualifiers and static can only appear in outermost array of function parameter z:/torque/engine\core/tVector.h(110) : Error: type qualifiers and static can only appear in outermost array of function parameter z:/torque/engine\core/tVector.h(111) : Error: type qualifiers and static can only appear in outermost array of function parameter line 102 is at the insert() function line 110 is the push_front() line 111 is the push_back() What am I missing here? This library compiles fine with gcc, metrowerks, and visual c++. Thanks.
Jun 27 2004
Can you reproduce a complete code snippet I can compile to see the problem? thanks!
Jun 27 2004
Walter wrote:Can you reproduce a complete code snippet I can compile to see the problem? thanks!Walter wrote:Can you reproduce a complete code snippet I can compile to see theproblem?thanks!Hello Walter. First thanks for the great compiler(and the quick response). The package I am compiling is Torque (www.garagegames.com). Since it is fairly tight-coupled(house of cards!) I have reproduced what is the jist of the problem(see code below). When you attempt to insert a static array as a template parameter it says no. This seems a reasonable error to me but gcc compiles it. I also tried to typedef ('block' type below), but that doesn't work either. Since I am in essence porting this engine to your compiler, I could make some changes, but I wanted your thought on it. Thanks again, David Medlock // begin code snippet template<class T>class Vector { public: void insert(T*, const T&) {;} }; typedef unsigned int U32; typedef unsigned int block[50]; int main( int argc, char** argv ) { Vector<U32[50]> int_vector; Vector<block> int_block_vector; }
Jun 28 2004
Walter wrote:I can take it from here, thanks!Cool! Btw. not to pile anything else on you, but this also gives issues: int a = 0; if ( bool(a) ) a++; is the C++ cast of bool(x) valid? Thanks again, David Medlock
Jun 28 2004
"David Medlock" <amedlock nospam.org> wrote in message news:cbqf8b$2ohp$1 digitaldaemon.com...Walter wrote:Yes.I can take it from here, thanks!Cool! Btw. not to pile anything else on you, but this also gives issues: int a = 0; if ( bool(a) ) a++; is the C++ cast of bool(x) valid?
Jun 29 2004