📄 edglan10.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="GENERATOR" content="Quadralay WebWorks Publisher Professional Edition 6.0.5">
<meta name="TEMPLATEBASE" content="book_html">
<meta name="LASTUPDATED" content="12/04/03 16:06:47">
<title>14.1.8 Secondary translation units </title>
<STYLE TYPE="text/css">
<!--
span.Signal { text-transform: uppercase; font-family: Verdana }
-->
</STYLE>
</head>
<body link="#3366CC" vlink="#9999CC" text="#000000" alink="#0000CC" bgcolor="#FFFFFF"
background="images/backgrnd.gif">
<p><img src="images/stlogo.gif" width="106" height="83" align="left"
alt="logo here!"> </p>
<table width="331" border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<td><a href="a_refman.htm"><img src="images/navtoc.gif" width="84" height="23"
border="0" alt="TOC"> </a></td>
<td><a href="edglang9.htm"><img src="images/navprev.gif" width="80" height="23"
border="0" alt="PREV"> </a></td>
<td><a href="edglan11.htm"><img src="images/navnext.gif" width="83" height="23"
border="0" alt="NEXT"> </a></td>
<td><a href="a_refmaa.htm"><img src="images/navidx.gif" width="84" height="23"
border="0" alt="INDEX"> </a></td>
</tr>
</table>
<p><br clear="all">
</p>
<hr align="left">
<blockquote>
<h3>
<a name="1207774"> </a><font color="#003366" face="Verdana, Arial, Helvetica, sans-serif">14.1.8 Secondary translation units</font>
</h3>
<p>
<a name="1207775"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">An instantiation of an exported template can be triggered by an explicit instantiation directive, or by the <font size=2 face=Courier><strong>-tused</strong></font><font face="Verdana, Arial, Helvetica, sans-serif"> </font>command-line option. In each case, the translation unit that contains the initial point of instantiation will be processed as the <font face="Verdana, Arial, Helvetica, sans-serif"><i>primary translation unit</i></font>. Based on information it finds in the "<font size=2 face=Courier><strong>.et</strong></font>" files, the front end will then load and parse the translation unit containing the definition of the template to instantiate. This is a <font face="Verdana, Arial, Helvetica, sans-serif"><i>secondary translation unit</i></font>. The simultaneous processing of the primary and secondary translation units enables the front end to create instantiations of the exported templates (which can include entities from both translation units). This process may reveal the need for additional instantiations of exported templates, which in turn can cause additional secondary <font face="Verdana, Arial, Helvetica, sans-serif">translation units to be loaded.</font></font>
</p>
<p>
<a name="1207776"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">When secondary translation units are processed, the declarations they contain are checked for consistency. This process may report errors that would otherwise not be caught. Many of these errors are so-called "ODR violations" (ODR stands for "one-definition rule"). For example:</font>
</p>
<a name="1207777"> </a><font size=2 face=Courier><strong><font size=2 face=Courier><em>// File 1:</em></font> <br><br></strong></font>
<a name="1207779"> </a><font size=2 face=Courier><strong>struct X {<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -