Так "A a = {...};" написать точно не получится, потому что надо указывать тип шаблонного параметра. Т.е. в записи "A a" тип недоопределён.
Возможно, можно сделать аналог std::make_shared, который будет возвращать, напрмиер, A<5>. Что-то типа:
template< int Size>
A<Size> make_A( std::initializer_list<T> init_list )
{
A<init_list .size()> a( init_list ); // size() - constexpr
return a;
}
auto a = make_A( {...} );