There are two form of the c++ function std::make_any,
template< class T, class... Args > std::any make_any( Args&&... args ); (1) template< class T, class U, class... Args > std::any make_any( std::initializer_list<U> il, Args&&... args ); (2) How does the second form work? Why it is not just
template< class T, class U> std::any make_any( std::initializer_list<U> il) ? For example, in this statement,
std::any a = std::make_any<std::list<int>>({1,2,3}). Or can you call it with both an initializer_list and together with some other arguments, such as, {1,2,3}, 4,5? Is the args here for constructing il, or for list?