Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
'function' : Příliš mnoho statických objektů oboru bloku s konstruktorem/destruktory ve funkci
Poznámky
Ve verzích kompilátoru Microsoft C++ před sadou Visual Studio 2015 nebo při zadání parametru /Zc:threadSafeInit- compiler existuje limit 31 pro počet statických objektů, které můžete mít v externě viditelné vložené funkci.
Pokud chcete tento problém vyřešit, doporučujeme použít novější verzi sady nástrojů kompilátoru Microsoft C++ nebo pokud je to možné, odebrat možnost kompilátoru /Zc:threadSafeInit- . Pokud to není možné, zvažte kombinování statických objektů. Pokud jsou objekty stejného typu, zvažte použití jednoho statického pole tohoto typu a odkazování na jednotlivé členy podle potřeby.
Příklad
Následující kód vygeneruje C2603 a ukazuje jeden způsob, jak ho opravit:
// C2603.cpp
// Compile by using: cl /W4 /c /Zc:threadSafeInit- C2603.cpp
struct C { C() {} };
extern inline void f1() {
static C C01, C02, C03, C04, C05, C06, C07, C08, C09, C10;
static C C11, C12, C13, C14, C15, C16, C17, C18, C19, C20;
static C C21, C22, C23, C24, C25, C26, C27, C28, C29, C30, C31;
static C C32; // C2603 Comment this line out to avoid error
}