Yes on the first part. As for the *why*, I don't know the real intent behind it, but I presume it's because it would suppress implicit instantiation for the specialization, and therefore when naming that specialization, the constraints would never be checked.