Upozornění kompilátoru (úroveň 1) C4258
"proměnná" : definice smyčky for je ignorována; definice z nadřazeného oboru se používá"
V části /Ze a /Zc:forScope se proměnné definované ve smyčce for po ukončení smyčky vyjdou mimo rozsah for
. K tomuto upozornění dochází v případě, že se proměnná se stejným názvem jako proměnná smyčky, ale definovaná v uzavřené smyčce, použije se znovu v oboru obsahujícím smyčku for
. Příklad:
// C4258.cpp
// compile with: /Zc:forScope /W1
int main()
{
int i;
{
for (int i =0; i < 1; i++)
;
i = 20; // C4258 i (in for loop) has gone out of scope
}
}