title: Declaring an initializer list variable in a header
body: <p>Reading the <a href="https://en.cppreference.com/w/cpp/utility/initializer_list" rel="nofollow noreferrer">documentation for <code>std::initializer_list</code></a>, I notice that :</p>
  <pre><code>Initializer lists may be implemented as a pair of pointers or pointer and length. 
  Copying a std::initializer_list does not copy the underlying objects.
  
  The underlying array is a temporary array of type `const T[N]`
  </code></pre>
  <p>So when I see a declaration in a header like</p>
  <pre><code>inline auto globalVar = { make_struct(1), make_struct(2) };
  </code></pre>
  <p>I can't help but wonder whether this is creating lifetime problems. Is there any dangling state here, will the underlying array's lifetime be extended for the duration of the global variable?</p>