Using static assertion templates (eg. Boost.StaticAssert) is not an unusual way to only allow template instantiations for certain types. However, clang seems to always flag the errors even when the ...