У меня есть кусок кода, который в значительной степени сокращается до:
template<class T> struct MyStruct; // No definition by default
template<class T> struct MyStruct<T *> { ... }; // Specialization for pointers
Теперь где-то в моем коде, я получаю экземпляр MyStruct<T>
, который оказывается неопределенным (без C ++ 0x / 011, без Boost ... ничего необычного, просто C ++ 03):
error C2027: use of undefined type 'MyStruct<T>'
Проблема в том, что я понятия не имею , где это вызывается , потому что код, который выполняет создание экземпляра, сам является шаблоном и вызывается из множества мест с разными аргументами. .
Есть ли способ как-то выяснить, что такое T
во время компиляции, чтобы я мог лучше понять сообщения об ошибках?
(Извините, я забыл упомянуть: Visual Studio 2008.)