No no no... this looks an awful lot like a compiler bug. Let me try it with a different compiler.
EDIT: gcc 4.3.2 compiles it fine, but comeau does not:
Your Comeau C/C++ test results are as follows:
Comeau C/C++ 4.3.10.1 (Oct 6 2008 11:28:09) for ONLINE_EVALUATION_BETA2
Copyright 1988-2008 Comeau Computing. All rights reserved.
MODE:strict errors C++ C++0x_extensions
"ComeauTest.c", line 11: error: declaration does not declare anything
struct
^
"ComeauTest.c", line 12: error: types cannot be declared in anonymous unions
{
^
"ComeauTest.c", line 18: error: declaration does not declare anything
struct
^
"ComeauTest.c", line 36: error: class "CDerived" has no member "pvMeow"
rD.pvMeow; // WHY THE FRELL DOES THIS COMPILE?
^
"ComeauTest.c", line 37: error: class "CDerived" has no member "lBark"
rD.lBark; // WHY THE FRELL DOES THIS COMPILE?
^
5 errors detected in the compilation of "ComeauTest.c".
(Note: you can try out the comeau compiler online at:
http://www.comeaucomputing.com/pcgi-bin/compiler.cgi)