Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"argument": nieprawidłowy argument szablonu dla wyrażenia stałej "type", oczekiwane wyrażenie stałej w czasie kompilacji
Uwagi
Argument szablonu nie jest zgodny z deklaracją szablonu; wyrażenie stałe powinno pojawić się w nawiasach kątowych. Zmienne nie są dozwolone jako rzeczywiste argumenty szablonu. Sprawdź definicję szablonu, aby znaleźć poprawne typy.
Przykłady
Poniższy przykład generuje kod C2975, a także pokazuje prawidłowe użycie:
// C2975.cpp
template<int I>
class X {};
int main() {
int i = 4, j = 2;
X<i + j> x1; // C2975
X<6> x2; // OK
}
C2975 występuje również w przypadku użycia __LINE__ jako stałej czasu kompilacji z /ZI. Jednym z rozwiązań byłoby skompilowanie za pomocą /Zi polecenia zamiast /ZI.
// C2975b.cpp
// compile with: /ZI
// processor: x86
template<long line>
void test(void) {}
int main() {
test<__LINE__>(); // C2975
}