[cfe-commits] r124089 - in /cfe/trunk: lib/CodeGen/CGRTTI.cpp lib/CodeGen/CodeGenModule.cpp test/CodeGenCXX/exceptions-no-rtti.cpp test/CodeGenCXX/key-function-vtable.cpp test/CodeGenCXX/mangle-subst-std.cpp test/CodeGenCXX/rtti-linkage.cpp test/Co...

Douglas Gregor dgregor at apple.com
Mon Jan 24 09:33:59 PST 2011


On Jan 24, 2011, at 9:24 AM, Renato Golin wrote:

> On 01/24/11 17:17, Douglas Gregor wrote:
>> You are technically correct, but the prohibition of multiple explicit
>> template instantiations is almost useless in practice, because there
>> still may be any number of implicit template instantiations with the
>> same arguments.
> 
> But by priority rules, explicit instantiation takes precedence over
> implicit ones. If you have multiple implicit and one explicit, you'll
> always take the explicit one.


That depends on the linker. With the Mac OS 10.6 dynamic linker, for example, a strong external symbol in one shared library will not get merged with same-named weak symbols in another shared library.

	- Doug



More information about the cfe-commits mailing list