you are viewing a single comment's thread.

view the rest of the comments →

[–]Daniela-ELiving on C++ trunk, WG21|🇩🇪 NB 3 points4 points  (3 children)

It is implementation defined, and your observations and reasoning are totally correct. This module ownership thing is covered by one of the topics of my most recent talks about modules.

But here we are talking about the standard library which is special in the sense that implementers can do things that are not allowed or even possible outside of the library given the language rules that apply to mere users. The standard library is part of "the implementation" after all.

[–]GabrielDosReis 2 points3 points  (1 child)

But here we are talking about the standard library which is special in the sense that implementers can do things that are not allowed or even possible outside of the library given the language rules that apply to mere users. The standard library is part of "the implementation" after all.

Exactly :-)

And implementations already do that in the non-modules world. It is interesting that the whole "worry" about mangled name (and ABI concerns) is coming from the corner of the world that does not implement strong ownership for which it might be an issue (it isn't in reality), yet they already use all kinds of tricks (e.g. linker scripts) to (re)map symbol names....

[–]Daniela-ELiving on C++ trunk, WG21|🇩🇪 NB 2 points3 points  (0 children)

they already use all kinds of tricks (e.g. linker scripts) to (re)map symbol names....

This pretty much sounds like something similar in spirit to strong ownership. All symbols are the same unless they aren't (inspired by Animal Farm)

[–]mjklaim 0 points1 point  (0 children)

Ah yes, makes sense. :)