In the follwing example code I use the object a0 as a non-type template-parameter, which works well, because it is an object with linkage (lvalue-ref). So I thought it must be possible to do so with an array element, but that fails:
constexpr uint8_t a[10] = {};
constexpr uint8_t a0 = {};
template<typename T, const T& V>
struct Test {};
using test = Test<uint8_t, a0>; // OK
using test = Test<uint8_t, a[0]>; //NOK
Is there a way to get this working?