Вы можете потребовать, чтобы ваш параметр был специализацией std :: integers_constant (или какого-либо другого типа, который предоставляет как члены типа, так и значения:
template<typename Arg = std::integral_constant<size_t, 10>>
struct foo
{ };
, но в целом я бы сказал, что предпочтительнее двухпараметрический метод.