Sun Studio 12: C++ User's Guide

A.2.40 –instances=a

Controls the placement and linkage of template instances.

A.2.40.1 Values

a must be one of the following values.

Table A–15 The -instances Values

Value 

Meaning  

extern

Places all needed instances into the template repository within comdat sections and gives them global linkage. (If an instance in the repository is out of date, it is reinstantiated.) 

Note: If you are compiling and linking in separate steps and you specify -instance=extern for the compilation step, you must also specify it for the link step.

explicit

Places explicitly instantiated instances into the current object file and gives them global linkage. Does not generate any other needed instances. 

global

Places all needed instances into the current object file and gives them global linkage. 

semiexplicit

Places explicitly instantiated instances into the current object file and gives them global linkage. Places all instances needed by the explicit instances into the current object file and gives them global linkage. Does not generate any other needed instances. 

static

Note: -instances=static is deprecated. There is no longer any reason to use -instances=static, because -instances=global now gives you all the advantages of static without the disadvantages. This option was provided in earlier compilers to overcome problems that do not exist in this version of the compiler.

Places all needed instances into the current object file and gives them static linkage. 

Defaults

If –instances is not specified, –instances=global is assumed.

See also

7.2.4 Template Instance Placement and Linkage.