template<typename T>
class CConstraint
{
public:
CConstraint()
{
}
virtual ~CConstraint()
{
}
template <typename TL>
void Verify(int position, int constraints[])
{
}
template <>
void Verify<int>(int, int[])
{
}
};
Компиляции это под г ++ дает следующее сообщение об ошибке:Явная специализация в области не-имена сферы
Явной специализации в не-пространстве имен сферы «класса CConstraint»
В VC, он компилирует нормально. Может кто-нибудь, пожалуйста, дайте мне знать обходной путь?
* Несоответствие в этом случае *: как всегда :)? Шаблоны и VC++ не так хорошо смешиваются:/ –
Спасибо большое :) – Mark
Это не соответствует требованиям, что позволит вам сделать то, что обычно не разрешает стандарт - что не является проблемой для кода, который с самого начала согласуется (вы пишете такой код, правильно? ~). Реальные проблемы соответствия - это когда он не будет компилировать то, что требуется Стандарту для компиляции, или будет вести себя иначе, чем указано. –