C++ programming technique utilizing the fact that an invalid substitution of template parameters is not in itself an error