Здравствуйте, Alexey F, Вы писали:
AF>Здравствуйте, Alexey F, Вы писали:
AF>>Ссылки на стандарт не дам... AF>Нашёл на удивление быстро: AF>
AF>3.3 Declarative regions and scopes
AF>3.3.1 Point of declaration
AF>1 The point of declaration for a name is immediately after its complete declarator (clause 8) and before its
AF>initializer (if any), except as noted below. [Example:
AF>
AF>int x = 12;
AF>{ int x = x; }
AF>
AF>Here the second x is initialized with its own (indeterminate) value. ]
Доступ к indeterminate value для объекта типа 'int' может приводить к UB.
Ссылки на стандарт не дам, но это мало чем отличается от разрешённого:
// было пару случаев, когда обжигался на подобных, но более сложных примерах,
// а ключ компилятора, включавший warning на подобные вещи, был отломан:int a = a;
int func ( int value ) { ... }
int b = func ( b );
Здравствуйте, Alexey F, Вы писали:
AF>Ссылки на стандарт не дам...
Нашёл на удивление быстро:
3.3 Declarative regions and scopes
3.3.1 Point of declaration
1 The point of declaration for a name is immediately after its complete declarator (clause 8) and before its
initializer (if any), except as noted below. [Example:
int x = 12;
{ int x = x; }
Here the second x is initialized with its own (indeterminate) value. ]
Там ниже исключения из этого правила, но они не относятся данному случаю
AF>Ссылки на стандарт не дам, но это мало чем отличается от разрешённого: AF>
AF>// было пару случаев, когда обжигался на подобных, но более сложных примерах,
AF>// а ключ компилятора, включавший warning на подобные вещи, был отломан:
AF>int a = a;
AF>int func ( int value ) { ... }
AF>int b = func ( b );
AF>
AF>и, следовательно, легально.
а студия ругается, пришлось в который раз уступить девушке =)
Здравствуйте, Alexey F, Вы писали:
AF>Здравствуйте, Sashaka, Вы писали:
S>>а студия ругается, пришлось в который раз уступить девушке =) AF>А какая именно?
AF>На всех, приведённых ниже, скомпилировалось: AF>MS Visual C++ 2005 Express, MS Visual C++ 2008 Express и даже MS Visual C++ 6.0 — полёт нормальный.
Здравствуйте, Sashaka, Вы писали:
S>Здравствуйте, Alexey F, Вы писали:
AF>>Здравствуйте, Sashaka, Вы писали:
S>>>а студия ругается, пришлось в который раз уступить девушке =) AF>>А какая именно?
AF>>На всех, приведённых ниже, скомпилировалось: AF>>MS Visual C++ 2005 Express, MS Visual C++ 2008 Express и даже MS Visual C++ 6.0 — полёт нормальный.
S>2008-я, но там код был посложнее.
S>что-то вроде S>