How to declare a variadic template function as a friend?
For example as follows:
template class A { friend ??? MakeA ??? ; // What
It's quite straightforward. It's simply a template declaration with the added friend specifier:
friend
template<class T> class A { template<class T1, class... Args> friend A<T1> MakeA(Args&&... args); A(T) { } };