Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
"függvény" : Túl sok blokkhatókörű statikus objektum konstruktor/destruktorokkal a függvényben
Megjegyzések
A Microsoft C++ fordító Visual Studio 2015 előtti verzióiban, illetve a /Zc:threadSafeInit- fordító beállítás megadásakor a külsőleg látható beágyazott függvényekben elérhető statikus objektumok száma 31-es korlátot tartalmaz.
A probléma megoldásához javasoljuk, hogy a Microsoft C++ fordítóeszközkészlet újabb verzióját alkalmazza, vagy ha lehetséges, távolítsa el a /Zc:threadSafeInit- fordító lehetőséget. Ha ez nem lehetséges, fontolja meg a statikus objektumok kombinálását. Ha az objektumok azonos típusúak, fontolja meg egyetlen ilyen típusú statikus tömb használatát, és szükség szerint hivatkozzon az egyes tagokra.
példa
A következő kód létrehozza a C2603-at, és egy módszert mutat a javításra:
// 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
}