I\'ve heard before that POD types cannot have private data -- but according to the C++0x draft I have the requirement is looser (emphasis mine):
has t
According to my n3225 C++0x draft, WindowsApi::Uuid is a POD class.
From page 219: A POD struct is a class that is both a trivial class and a standard-layout class, and has no non-static data members of type non-POD struct, non-POD union (or array of such types).
A trivial class is a class that has a trivial default constructor and is trivially copyable:
A trivially copyable class is a class that:
A standard-layout class is a class that:
Since WindowsApi doesn't violate any of these constraints, it will be a valid POD class under C++0x. As AndreyT mentions, this is a more generous wording than C++03.