title: C++ - std::initializer_list vs std::span
body: <p>What is the difference between <em><strong>std::initializer_list</strong></em> and <em><strong>std::span</strong></em>? Both are contiguous sequences of values of some type. Both are non-owning.
  So when do we use the first and when do we use the latter?</p>