У меня много шаблонов кода.Поскольку неверный шаблонный код не выдает ошибку компилятора, если он не скомпилирован, есть ли способ проверить, какие функции шаблона компилятор фактически «скомпилировал», а какие вообще были проигнорированы?
РЕДАКТИРОВАТЬ 2:
Если конкретный шаблон класса или шаблон функции создается один раз для любых типов параметров, то это нормально.Мне нужен список шаблонов функций / классов, которые никогда не создавались в какой-либо форме.
Одним из конкретных примеров является следующий.Это две разные функции шаблона, и я хотел бы знать, если ни один из них, ни оба никогда не создаются.
template <typename T_InputItr, typename T_Distance>
void advance( T_InputItr& aItr, T_Distance aN, bidirectional_iterator_tag )
template <typename T_InputItr, typename T_Distance>
void advance( T_InputItr& aItr, T_Distance aN, random_access_iterator_tag )
РЕДАКТИРОВАТЬ: В настоящее время для классов я создаю их экземпляр в .cpp
файл вручную, например, так:
template TClass<int>;
для всех типов, которые меня интересуют. Это хорошо.Но это если я не забуду это сделать.Иногда мне нужно написать множество небольших шаблонных классов / функций, где я забываю создавать экземпляры некоторых шаблонов функций / классов вручную и узнавать об этом позже.Я хотел бы, чтобы компилятор сказал мне это.
В качестве альтернативы, если бы я мог получить список шаблонов функций / классов, которые были созданы (для любого параметра), то я мог бы сравнить это с полным списком, который я мог быgrep for в коде.
Еще одним преимуществом будет «проверка», какие методы были скомпилированы в шаблонном классе, который использует свойства типа для выборочной компиляции определенных функций.Я хочу быть уверен, что моя логика для выбора правильных функций верна, прежде чем двигаться дальше.