угловые скобки после структуры

У меня проблемы с пониманием следующей строки в коде C ++:

template<class Variable> struct strVar< :: namespaceName::strVar2_<Variable>> : public trueType {};

Что означают угловые скобки после struct strVar? Я никогда не слышал об этом стиле раньше.

Строка не компилируется с моим компилятором, но она исходит от работающего программного обеспечения, поэтому в некотором смысле она должна быть правильной.

0

Решение

Код определяет частичную специализацию шаблона класса strVar, Где-то ранее в коде должно быть хотя бы объявление основного шаблона:

template <class T> struct strVar;

Затем код, который вы разместили, дает определение, которое будет использоваться для strVar всякий раз, когда его аргумент шаблона (соответствует T) бывает специализация шаблона класса ::namespaceName::strVar2_,

Пример:

strVar<int> x;  // will use primary template
strVar<::namespaceName::strVar2_<int>> x;  // will use the specialisation
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector