3 ms·
how is that related in any way to the article ?
by jcelerier 7y ago
how is that related in any way to the article ?
- Someone 7y agoAlso, I don’t think there is anything in the C, respectively C++ standards that forbids, respectively requires name mangling. Linking isn’t specified in either standard. C++ implementations have name mangling because they live on systems designed for C, which don’t allow symbols such as int max(int,int) C implementations (would) need name mangling if they ran on a system that used case-insensitive comparisons on symbol names, or on ones whose character set is smaller than that allowed in C symbols (I know examples of neither, but Wikipedia has an example that encodes the calling convention in the symbol name: https://en.wikipedia.org/wiki/Name_mangling#C https://en.wikipedia.org/wiki/Name_mangling#C)
- ape4 7y agoThe table in that article shows how different compilers mange very similarly but not the same! This is something that could be standardized for the benefit of all.
- Someone 7y agoNot quite. You would know what to call, but not how to call it. That would require full ABI compatibility, and C++’s is complex. https://isocpp.org/wiki/faq/compiler-dependencies#binary-compat https://isocpp.org/wiki/faq/compiler-dependencies#binary-com...: ”If name mangling was standardized, could I link code compiled with compilers from different compiler vendors? Short answer: Probably not.” (click link for more info)
- ape4 7y agoThanks for the info. I'm just a C/C++ user. There has to be way to workout a convention for all those options.
- jcelerier 7y ago> Probably not. yet the real life answer is that I can link C++ code built with three different compiler on linux (gcc / clang / icc) and three / two on windows (clang / cl.exe / icc or clang / gcc)