enum destructor call difference between c++2011 and previous c++ version. is it a bug ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Hi all,

 When compiling attach code with or without -std=c++0x option I notice that
-std=c++0x is more strict concerning enum destructor call.
 I was wondering if it's a bug in compiler or a normal behaviour. I have
found no help from c++ standard.

 I'm using gcc 4.6.3 and compile code with following command line:
g++ -std=gnu++0x foo.cpp -c => for c++2011
g++ foo.cpp -c

Mickael
enum E { A, B };

void foo()
{
	E e = B;

	e.~E(); // ok with and without -std=c++0x
	e.E::~E(); // ok without -std=c++0x. Compilation error with -std=c++0x => 
			   // request for member â??E::~Eâ?? in â??eâ??, which is of non-class type â??Eâ??
}

[Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

Add to Google