Undefined behavior and sequence points

C++98 and C++03 This answer is for the older versions of the C++ standard. The C++11 and C++14 versions of the standard do not formally contain ‘sequence points’; operations are ‘sequenced before’ or ‘unsequenced’ or ‘indeterminately sequenced’ instead. The net effect is essentially the same, but the terminology is different. Disclaimer : Okay. This answer … Read more

push_back vs emplace_back

In addition to what visitor said : The function void emplace_back(Type&& _Val) provided by MSCV10 is non conforming and redundant, because as you noted it is strictly equivalent to push_back(Type&& _Val). But the real C++0x form of emplace_back is really useful: void emplace_back(Args&&…); Instead of taking a value_type it takes a variadic list of arguments, … Read more

What is the difference between g++ and gcc?

gcc and g++ are compiler-drivers of the GNU Compiler Collection (which was once upon a time just the GNU C Compiler). Even though they automatically determine which backends (cc1 cc1plus …) to call depending on the file-type, unless overridden with -x language, they have some differences. The probably most important difference in their defaults is … Read more

Do the parentheses after the type name make a difference with new?

Let’s get pedantic, because there are differences that can actually affect your code’s behavior. Much of the following is taken from comments made to an “Old New Thing” article. Sometimes the memory returned by the new operator will be initialized, and sometimes it won’t depending on whether the type you’re newing up is a POD … Read more

What is the difference between ‘typedef’ and ‘using’ in C++11?

They are equivalent, from the standard (emphasis mine) (7.1.3.2): A typedef-name can also be introduced by an alias-declaration. The identifier following the using keyword becomes a typedef-name and the optional attribute-specifier-seq following the identifier appertains to that typedef-name. It has the same semantics as if it were introduced by the typedef specifier. In particular, it … Read more