Can I initialize an array using the std::initializer_list instead of brace-enclosed initializer? : <p>Can I initialize an array using the <code>std::initializer_list</code> object instead of brace-enclosed initializer?</p>

<p>As known, we can do this: <a href="http://en.cppreference.com/w/cpp/language/aggregate_initialization">http://en.cppreference.com/w/cpp/language/aggregate_initialization</a></p>

<pre><code>unsigned char b[5]{"abc"};
// equivalent to unsigned char b[5] = {'a', 'b', 'c', '\0', '\0'};

int ar[] = {1,2,3};
std::array&lt;int, 3&gt; std_ar2{ {1,2,3} };    // std::array is an aggregate
std::array&lt;int, 3&gt; std_ar1 = {1, 2, 3};
</code></pre>

<p>But I can't initialize an array by <code>std::initializer_list il;</code>: </p>

<p><a href="http://ideone.com/f6aflX">http://ideone.com/f6aflX</a></p>

<pre><code>#include &lt;iostream&gt;
#include &lt;initializer_list&gt;
#include &lt;array&gt;

int main() {

    int arr1[] =  { 1, 2, 3 };  // OK
    std::array&lt;int, 3&gt; arr2 =  { 1, 2, 3 }; // OK

    std::initializer_list&lt;int&gt; il = { 1, 2, 3 };
    constexpr std::initializer_list&lt;int&gt; il_constexpr = { 1, 2, 3 };

    //int arr3[] = il;  // error
    //int arr4[] = il_constexpr;    // error

    //std::array&lt;int, 3&gt; arr5 =  il;    // error
    //std::array&lt;int, 3&gt; arr6 =  il_constexpr;  // error

    return 0;
}
</code></pre>

<p>But how can I use <code>std::initializer_list il;</code> to initialize an array?</p>
