
On Thu, May 27, 2004 at 04:06:19PM +0200, Dr. Franz Fehringer wrote:
Joaqu?n M? L?pez Mu?oz wrote: . . . Good question. I should have explained of course. Well vacpp has only in some circurmstances a problem with the in class member initialization. For instance following does not work (confirmed by IBM):
class A { public: static const int value = true ; } ;
int main() { int v1 = A::value ; // does work bool v2 = A::value ; // does not work return 0 ; } ;
Hello,
I know i argue with eminent C++ specialists in this group, but i think the code above is not correct. To my best knowledge even with the inclass line static const int value = true ; you have to give a definition outside of the class: int A::value;
Only if A::value is "used in the program". Stroustrup says if you use it in a way that requires the object to be stored in memory, e.g take its address AFAICT you don't need to give an out-of-class definition if the value is only used in integral constant expressions. Is that right?
Apart from that return 0; should be unnecessary
But it isn't incorrect. jon -- Emacs is a nice OS - but it lacks a good text editor. That's why I am using Vim. - Anonymous