⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 edglang6.htm

📁 ST20 Embedded Toolset R2.0.5用于开发基于ST20芯片机顶盒软件的开发平台,2.0.5版本,国内找不到的.在国外论坛上花了N天才找到!
💻 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.4 Template instantiation #pragma directives  </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="edglang5.htm"><img src="images/navprev.gif" width="80" height="23"
    border="0" alt="PREV"> </a></td>
    <td><a href="edglang7.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="1206330"> </a><font color="#003366"  face="Verdana, Arial, Helvetica, sans-serif">14.1.4 	 Template instantiation #pragma directives</font>
</h3>


<p>
  <a name="1206331"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">Instantiation pragmas can be used to control the instantiation of specific template entities or sets of template entities. There are two instantiation pragmas.</font>
</p>

<ul>
<p>  <font size=2  face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1206332"> </a>The <font size=2 face=Courier><strong>instantiate</strong></font> pragma causes a specified entity to be instantiated.</font></p>
<p>  <font size=2  face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1206333"> </a>The <font size=2 face=Courier><strong>do_not_instantiate</strong></font> pragma suppresses the instantiation of a specified entity. It is typically used to suppress the instantiation of an entity for which a specific definition will be supplied.</font></p>
</ul>

<p>
  <a name="1206442"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">The argument to the instantiation pragma may be:</font>
</p>

<ul>
<p>  <font size=2  face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1206443"> </a>a template class name - <font size=2 face=Courier><strong>A&lt;int&gt;</strong></font>,</font></p>
<p>  <font size=2  face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1206444"> </a>a template class declaration - <font size=2 face=Courier><strong>class A&lt;int&gt;</strong></font>,</font></p>
<p>  <font size=2  face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1206341"> </a>a member function name - <font size=2 face=Courier><strong>A&lt;int&gt;::f</strong></font><font  face="Verdana, Arial, Helvetica, sans-serif">,</font></font></p>
<p>  <font size=2  face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1206342"> </a>a static data member name - <font size=2 face=Courier><strong>A&lt;int&gt;::i</strong></font>,</font></p>
<p>  <font size=2  face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1206450"> </a>a static data declaration - <font size=2 face=Courier><strong>int A&lt;int&gt;::i</strong></font>,</font></p>
<p>  <font size=2  face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1206451"> </a>a member function declaration - <font size=2 face=Courier><strong>void A&lt;int&gt;::f(int, char)</strong></font>,</font></p>
<p>  <font size=2  face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1206452"> </a>a template function declaration - <font size=2 face=Courier><strong>char* f(int, float)</strong></font>.</font></p>
</ul>

<p>
  <a name="1206346"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">A pragma in which the argument is a template class name (for example, <font size=2 face=Courier><strong>A&lt;int&gt;</strong></font> or <font size=2 face=Courier><strong>class A&lt;int&gt;</strong></font>) is equivalent to repeating the pragma for each member function and static data member declared in the class. When instantiating an entire class, a given member function or static data member may be excluded using the <font size=2 face=Courier><strong>do_not_instantiate</strong></font> pragma.</font>
</p>


<p>
  <a name="1207729"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">For example, </font>
</p>


<a name="1206347"> </a><font size=2 face=Courier><strong>#pragma instantiate A&lt;int&gt;<br>#pragma do_not_instantiate A&lt;int&gt;::f<br></strong></font>



<p>
  <a name="1206348"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">The template definition of a template entity must be present in the compilation for an instantiation to occur. If an instantiation is explicitly requested by use of the <font size=2 face=Courier><strong>instantiate</strong></font> pragma and no template definition is available or specific definition is provided, the compiler issues an error. </font>
</p>


<a name="1206488"> </a><font size=2 face=Courier><strong>template &lt;class T&gt; void f1(T); 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -