Commit 54e1d3a6 by Mark Mitchell

Minor tweaks

From-SVN: r35493
parent c1194d74
...@@ -203,7 +203,7 @@ handled. For example: ...@@ -203,7 +203,7 @@ handled. For example:
does not work the same way as: does not work the same way as:
@example @example
inline int foo(a) @{ int b = a; return b + 3; @} inline int foo(int a) @{ int b = a; return b + 3; @}
@end example @end example
@noindent @noindent
...@@ -213,19 +213,9 @@ run earlier in the case of the macro than in the case of the function. ...@@ -213,19 +213,9 @@ run earlier in the case of the macro than in the case of the function.
These considerations mean that it is probably a bad idea to use These considerations mean that it is probably a bad idea to use
statement-expressions of this form in header files that are designed to statement-expressions of this form in header files that are designed to
work with C++. Note that the GNU C Library does contain header files work with C++. (Note that some versions of the GNU C Library contained
using statement-expressions, and that these definitions make the library header files using statement-expression that lead to precisely this
technically non-conforming. For example, when optimization is turned bug.)
on,
@example
string a, b;
printf("%c", toupper((a+b).c_str()[0]));
@end example
@noindent
will result in the destructor for the temporary created for @code{a+b}
being run earlier than it should be.
@node Local Labels @node Local Labels
@section Locally Declared Labels @section Locally Declared Labels
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment