O
Т.е. вот примерно так:
template<bool DoNotInstantiate,Если
/* magic */, ─────────────╮
X = some_bad_template<int>> │
│
╭────────────────────────────────╯
DoNotInstantiate == true, то здесь мы должны сделать что-то, что предотвратит инстанцирование some_bad_template<int>, можно решение специфичное для GCC, но чем универсальнее, тем лучше. Так же есть возможность править шаблон some_bad_template, но в конце у него должны остаться некоторые дефолтные шаблонные параметры. X может быть хоть тайпнеймом, хоть нон-тайп аргументом

