Błąd kompilatora C2513
"type" : brak zmiennej zadeklarowanej przed '='
Specyfikator typu jest wyświetlany w deklaracji bez identyfikatora zmiennej.
Poniższy przykład generuje C2513:
// C2513.cpp
int main() {
int = 9; // C2513
int i = 9; // OK
}
Ten błąd można również wygenerować w wyniku pracy kompilatora wykonanej dla programu Visual Studio .NET 2003: inicjowanie definicji typu nie jest już dozwolone. Inicjowanie definicji typów nie jest dozwolone przez standard i teraz generuje błąd kompilatora.
// C2513b.cpp
// compile with: /c
typedef struct S {
int m_i;
} S = { 1 }; // C2513
// try the following line instead
// } S;
Alternatywą może być usunięcie typedef
w celu zdefiniowania zmiennej z zagregowaną listą inicjatora, ale nie jest to zalecane, ponieważ spowoduje utworzenie zmiennej o takiej samej nazwie jak typ i ukrycie nazwy typu.