title: Private aggregate initialization
body: <p>Is it possible to define as <code>private</code> the <strong>aggregate initialization</strong> for an <strong>aggregate</strong> class? I would like that the class can only be aggregate-initialized by its own static private members.</p>
  
  <p>Example:</p>
  
  <pre><code>struct Size
  {
      const unsigned int width;
      const unsigned int height;
  
      static const Size big;
      static const Size small;
  
  private:
  
      Size( ) = default;
  
      // something to declare the aggregare initialization as private
  };
  
  const Size Size::big = { 480, 240 };
  const Size Size::small = { 210, 170 };
  </code></pre>