[\[over.match.class.deduct\]/(1.8)](http://eel.is/c++draft/over.match.class.deduct#1.8): > if e<sub>i</sub> is of array type and x<sub>i</sub> is a *braced-init-list* or *string-literal*, T<sub>i</sub> is an rvalue reference to the declared type of e<sub>i</sub> According to [P2082R1](https://wg21.link/p2082r1), the intent is to permit ```c++ template<class T, std::size_t N> struct A { T array[N]; }; A a2 = {"meow"}; // should deduce A<const char, 5> ``` However, since `"meow"` is an lvalue, and the parameter T<sub>i</sub> is an rvalue reference, it seems that the deduction would fail, contrary to the expectation.