In an alias, a pack parameter cannot be used with a non-pack parameter and some traits fail in this case:
#include <type_traits>
template<class... xs>
using test = std::is_nothrow_convertible<xs...>; // error: pack expansion used as argument
// for non-pack parameter of alias template
std::is_nothrow_convertible<int,int> a; // ok
test<int,int> b; // fail
(https://godbolt.org/z/dTbWTYd4s)
From what I understand of cppreference and https://www.eel.is/c++draft/meta.type.synop, is_nothrow_convertible should be a class (who don't have this problem).
Expected behavior
The code above should compile.
STL version
msvc 19.37.32826.1 (sorry if this is not enough, I base this on what my github CI displays, but the main branch also uses aliases).
In an alias, a pack parameter cannot be used with a non-pack parameter and some traits fail in this case:
(https://godbolt.org/z/dTbWTYd4s)
From what I understand of cppreference and https://www.eel.is/c++draft/meta.type.synop,
is_nothrow_convertibleshould be a class (who don't have this problem).Expected behavior
The code above should compile.
STL version
msvc 19.37.32826.1 (sorry if this is not enough, I base this on what my github CI displays, but the main branch also uses aliases).