Предположим, что я являюсь пользователем определенной библиотеки шаблонов (CTL
), которая определяет шаблон, названный, скажем, Hector
template <class T>
class Hector {...};
И в его документации он дает много гарантий относительно поведения шаблона Hector
.
Но тогда он также определяет специализацию для определенного типа Cool
template <>
class Hector<Cool> {....};
Целью специализации является более оптимизированная реализация Hector
, но, к сожалению, из-за этой оптимизации нарушены многие гарантии Hector
.
В настоящее время мне действительно не нужна оптимизация, я бы предпочел сохранить все гарантии Hector
. Есть ли способ, который я мог бы, не меняя код библиотеки (CTL
- это очень респектабельная библиотека, вы знаете), обойти специализацию? В любом случае? Может быть, написать какую-то упаковку? Что-нибудь? Я просто хочу, чтобы компилятор генерировал код для Hector<Cool>
обычным, неоптимизированным способом со всеми гарантиями.