Допустим, я шаблонный класс определяется как:Тестирование параметров шаблона для равенства
template < typename A, typename B >
class something { ... }
Как я могу проверить, если типы А и В одного и того же типа? Я знаю, что это можно сделать во время выполнения с помощью typeid, но мне действительно нужно, чтобы это был тест времени компиляции.
Также, как я могу специализировать класс, если типы A и B равны?
В реальном мире A будет контейнером stl, например std :: string, а B будет char или wchar_t. Внутри я уже проверял контейнеры value_type (скомпилировать ошибку, если не то, что ожидалось). Если B совпадает с контейнером value_type, большая часть кода в классе станет излишней.
возможный дубликат [Как проверить, если два параметра шаблона точно так же?] (Http://stackoverflow.com/questions/14635413/how-to-check-if -two-template-parameters-are-same-same- – hmjd
@hmjd Аналогичный вопрос, другой ответ. –
@hmjd: Есть аналогичный вопрос И не похожий. На самом деле этот вопрос задает слишком много. –