using static_assert() is better

than template parameter substitution check