title: Initializing Const Struct with other Const Struct Instances
body: <p>I'm curious why the following code snippet doesn't compile: </p>
  
  <pre><code>typedef struct Foo {
      int a;
      int b;
  } Foo;
  
  static const Foo FooZero = { 0, 0 };
  
  typedef struct Bar {
      Foo foo;
      int c;
  } Bar;
  
  static const Bar BarZero = { FooZero, 0 };
  </code></pre>
  
  <p>It complains about the use of <code>FooZero</code>, stating that <code>FooZero</code> isn't a <code>Compile-Time Constant</code></p>
  
  <p>But isn't it? What am I not understanding here? </p>
  
  <p>Obviously, I can simply replace the use of <code>FooZero</code> in the initializer with <code>{ 0, 0 }</code> - my purpose in asking the question is not how to get around the problem - I'm trying to understand the underlying reason why <code>FooZero</code> is not, in fact, a compile-time constant.</p>
  
  <p>Thanks</p>