Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
"argument" : недопустимый аргумент шаблона для типа, ожидаемое выражение константы во время компиляции
Замечания
Аргумент шаблона не соответствует объявлению шаблона; Константное выражение должно отображаться в угловых скобках. Переменные не допускаются в качестве фактических аргументов шаблона. Проверьте определение шаблона, чтобы найти правильные типы.
Примеры
В следующем примере создается C2975, а также показано правильное использование:
// C2975.cpp
template<int I>
class X {};
int main() {
int i = 4, j = 2;
X<i + j> x1; // C2975
X<6> x2; // OK
}
C2975 также возникает при использовании __LINE__ в качестве константы во время компиляции с /ZI. Одним из решений будет компиляция /Zi вместо /ZI.
// C2975b.cpp
// compile with: /ZI
// processor: x86
template<long line>
void test(void) {}
int main() {
test<__LINE__>(); // C2975
}