title: Why does initialization via inline function is not require to be done statically
body: <p>The code snippet below is from 3.6.2/3 N3797 C++14 final working draft:</p>
  
  <pre><code>inline double fd() { return 1.0; }
  extern double d1;
  double d2 = d1;  // unspecified:
                   // may be statically initialized to 0.0 or
                   // dynamically initialized to 0.0 if d1 is
                   // dynamically initialized, or 1.0 otherwise
                   // may be initialized statically or dynamically to 1.0
  double d1 = fd();
  </code></pre>
  
  <p>As I understand that example, the initialization of both d1 and d2 is not required to be done statically. <code>double d2 = d1</code> is quite understandable (<code>d1</code> is not a <code>constant expression</code>). My question is the following:
  Why does initialization via inline function is not required to be done statically? </p>