C++ is a complex language and an evolving one, and its standard definition (the ISO C++ standard) was only recently completed. As a result, your C++ compiler may occasionally surprise you, even when its behavior is correct. This section discusses some areas that frequently give rise to questions of this sort.
• Static Definitions: | Static member declarations are not definitions | |
• Name lookup: | Name lookup, templates, and accessing members of base classes | |
• Temporaries: | Temporaries may vanish before you expect | |
• Copy Assignment: | Copy Assignment operators copy virtual bases twice |
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-7.3.0/gcc/C_002b_002b-Misunderstandings.html