I was wondering if there was any solution to find if a type was a specialization of a template that takes non-type parameters without specifying every type ?
For ins
If you can modify F and there are no other restrictions you haven't mentioned, the easiest solution would be to add a unique base class:
#include
#include
struct unique_F_base {};
template
struct F : unique_F_base
{
};
template
using is_F = std::is_base_of;
int main()
{
static_assert( !is_F< int >::value, "Oops" );
static_assert( is_F< F >::value, "Oops" );
}