On 20.12.2017 19:42, Johan Engelen wrote:
On Wednesday, 20 December 2017 at 13:57:20 UTC, Mike Parker wrote:
Many thanks to Rainer for his insightful new article for the D Blog outlining the new name mangling algorithm.



"D and C++ avoid this problem by adding more information to the symbol name, i.e. they encode into a symbol name the scope in which the symbol is defined, the function argument types, and the return type. "

I would change it to "... and the return type (D only)". C++ does not include the return type in the mangle for normal functions (it does for templates). An important difference, concerning the earlier remark about programs crashing when "fail to update and recompile all source files that use the new declarartion"

AFAICT that's for the Itanium C++ ABI only, the VC mangling always encodes the return type, too.

I also noticed that gcc doesn't encode the inferred type of an "auto" return type for templates (available with C++17; or was it in C++14 already?).

Reply via email to