title: What is the layout of a class in C++?
body: <p><a href="http://en.cppreference.com/w/cpp/language/data_members" rel="nofollow noreferrer">Here</a>, there is a paragraph on the notion of layout for a C class.</p>
  <blockquote>
  <p><strong>Layout</strong></p>
  <p>When an object of some class C is created, each non-static data
  member of non-reference type is allocated in some part of the object
  representation of C. Whether reference members occupy any storage is
  implementation-defined.</p>
  <p>For non-union class types, members with the
  same member access are always allocated so that the members declared
  later have higher addresses within a class object. Members with
  different access control are allocated in unspecified order (the
  compiler may group them together). Alignment requirements may
  necessitate padding between members, or after the last member of a
  class.</p>
  </blockquote>
  <p>Is there a strict equivalent of the notion of layout in C++ ?</p>
  <p>What is the standard layout of a C++ class ?</p>
  <p>Is there any storage for reference members in common implementations ?</p>