Help:Templates
此页面描述此维基中使用的模板。
模板提供达成下列目的的手段:
- 质量。修改内容从而还有修正错误变得容易。只需编辑一次重复的内容。
- 一致性。模板令做事的正确方式 变得隐含。
- 可用性。模板简化高级格式化。
此维基中有大量模板。所有模板的列表可用于特殊页面:所有页面。因为此维基使用 Mediawiki CMS ,故维基百科项目中的所有现存模板都能用于此。额外的好处是能用模板文档学习 Mediawiki 模板语法。
目录 |
[编辑]列表
列表模板系列
- dsc ****:用于创建成员变量/函数列表。
- dcl ****:用于创建详细声明列表(包含实际声明代码)。
- sdsc ****:用于创建表示语言功能特性的多种语法的列表。在 cpp/language 的子页面中使用。
- par ****:用于创建解释函数参数的列表。
- spar ****:用于创建解释语法参数的列表。
- nv ****:用于创建导航栏中的特性列表。
- elink **** : 用于创建外部连接 列表。
[编辑]印刷辅助模板
这是用于输出特殊符号的模板之一:
{{!}} - 输出 |
{{!!}} - 输出 ||
{{=}} - 输出 =
{{==}} - 输出 ==
{{!=}} - 输出 |=
{{(!}} - 输出 {|
{{!)}} - 输出 |}
从 Template:!/doc嵌入上方文档。(编辑 | 历史) 此页面的子页面。 |
[编辑]格式化
添加格式到被环绕的文本:
用途 | 预览 | 描述 | 生成的 HTML 元素 |
---|---|---|---|
''文本 '' | 文本 | 斜体普通字体下的文本 | <i> 文本</i> |
'''文本 ''' | text | 加粗普通字体下的文本 | <b> 文本</b> |
{{i|文本 }} | 文本 | 斜体字体下的文本 | <i> 文本</i>{{sep}} |
{{tt|文本 }} | 文本 | 等宽字体下的文本 | <code> 文本</code> |
{{ttb|文本 }} | 文本 | 加粗等宽字体下的文本 | <code><b> 文本</b></code> |
{{tti|文本 }} | 文本 | 斜体等宽字体下的文本 | <code><i> 文本</i></code> |
{{normal|文本 }} | 文本 | 正常粗细的文本 | ... font-weight: normal; ... |
{{ttn|文本 }} | 文本 | 正常粗细的等宽字体下的文本 | {{normal|{{tt| 文本}}}} |
{{ttni|文本 }} | 文本 | 正常粗细的斜体等宽字体下的文本 | {{normal|{{tti| 文本}}}} |
{{petty|文本 }} | 文本 | 较小的文本 | <small> 文本</small> |
{{small|文本 }} | 文本 | 小号文本 | ... font-size: 0.7em; line-height: 130%; ... |
{{smalltt|文本 }} | 文本 | 小号等宽字体下的文本 | {{small|{{tt| 文本}}}} |
{{sub|文本 }} | 文本 | 通常字体下的文本 下标 | <sub>文本</sub> |
{{sup|文本 }} | 文本 | 通常字体下的文本 上标 | <sup>文本</sup> |
{{p|文本 }} | 文本 | 新段落中的文本 | <p>文本</p> |
从 Template:tt/doc嵌入上方文档。(编辑 | 历史) 此页面的子页面。 |
[编辑]语法高亮
这些是用于语法高亮的模板。
{{c|代码 |lang=语言 (可选)}}
- 目的为高亮内嵌代码的基本模板。
lang
是可选的;默认使用 {{get lang}} 返回的值。应用半透明暗背景。 - 例如:
{{c|std::string(80, '_');}}
会生成 std::string(80, '_'); - 例如:
{{c|1= auto x = std::array{1, 2, 3};}}
会生成 auto x =std::array{1, 2, 3}; - 注意代码中有地方出现等于号 = 的时候必须使用 1=。
- 对于范围中的代码块(例如
[
begin,
end)
),应优先考虑使用 {{range}} 模板一族。
{{c multi|第1行 |第2行 (可选)|... |第8行 (可选)|lang=语言 (可选)}}
- 同 {{c}},只不过支持多行代码(最多 8 行)。
lang
是可选的;默认使用 {{get lang}} 返回的值。代码高亮不会跨行:所以要避免拆分字符串字面量("")和多行注释(/* */)。 - 例如(注意填充空格):
{{c multi|std::max(std::numeric_limits<int>::max(),| std::numeric_limits<int>::min())}}
- 或者(注意缩进):
{{c multi
|std::max(std::numeric_limits<int>::max(),
| std::numeric_limits<int>::min())}}- 会生成
- std::max(std::numeric_limits<int>::max(),
std::numeric_limits<int>::min())。
- 注意代码中有某行出现等于号 = 的时候必须使用对应行的 |1=/|2=/|3=/.../|8=,例如
{{c multi
|1=std::any = 42;
|2=std::any = 3.14;}} - 会生成
- std::any=42;
std::any=3.14;。
{{cc multi|line1 |line2 (可选)|... |line8 (可选)|lang=language (可选)}}
- 同 {{c multi}} 只是没有添加背景(比如边框)。
- 例如(注意填充空格):
{{cc multi|std::max(std::numeric_limits<int>::max(),| std::numeric_limits<int>::min())}}
- 或者
{{cc multi|std::max(std::numeric_limits<int>::max(),|{{nbsp|9}}std::numeric_limits<int>::min())}}
- 或者(注意缩进):
{{cc multi
|std::max(std::numeric_limits<int>::max(),
| std::numeric_limits<int>::min())}}- 会生成
- std::max(std::numeric_limits<int>::max(),
std::numeric_limits<int>::min()).
{{c/core|代码 |lang=语言 (可选)}}
{{co|代码 |lang=语言 (可选)}}
- 同 {{c/core}},只不过不应用背景(例如边界盒)。应当用于表格中,边界盒由表格的框架设定。
- 例如:
{{co|std::basic_regex<char>}}
会生成 std::basic_regex<char>
{{box|标签 }}
- 与 {{c}} 类似,对若干给定标签格式化的文本的周围应用一整个边界盒。
- 例如:
{{box|{{lc|std::pair}}{{tt|''<int, char>''()}}}}
会生成 std::pair<int,char>()
- 例如:
{{ltt std|cpp/algorithm/swap}}{{tt|''<int>''}}{{c/core|(x, y);}}}}
会生成 std::swap<int>
(x, y);
{{box/core|标签 }}
- 同 {{box}},只不过不应用背景(例如边界盒)。
- 例如:
{{box/core|{{c/core|std::common_reference_t<ranges::range_reference_t<R1>,}}
<br>{{nbspt|24}}{{c/core|ranges::range_reference_t<R2>>}}}}- 会生成
- std::common_reference_t<ranges::range_reference_t<R1>,
{{cc|代码 |lang=语言 (可选)}}
- 基本模板,用于高亮大量的内嵌代码。通常在 {{c}} 模板不显示可读代码,但 {{source}} 会浪费太多空间时使用。
lang
是可选的;默认使用 {{get lang}} 返回的值。 - 例如:
{{cc|1= assert(std::hypot(3, 4) == 5);}}
会生成 assert(std::hypot(3, 4)==5);
{{source|代码 |lang=语言 (可选)}}
- 目的为高亮大量代码的基本模板。
lang
是可选的;默认使用 {{get lang}} 返回的值。 - 例如,以下代码:
{{source|1= int main() { __builtin_printf("你好,C++\n"); } }}
- 会生成
int main(){ __builtin_printf("你好,C++\n");}
{{eq fun|代码1 |代码2 (可选)|... |代码4 (可选)|lang=语言 (可选)}}
- 基本模板,用于展示 可能实现 段落中的代码片段。参数
代码1
、代码2
等是所描述的函数模板的各个版本的代码(比如下面情形中的 std::fill 一族代码)。如果完全不提供代码,那么该模板会产生 {{todo}}。lang
是可选的;默认使用 {{get lang}} 返回的值。
通常在 {{c}} 模板不显示可读代码,但 {{source}} 会浪费太多空间时使用。lang
是可选的;默认使用 {{get lang}} 返回的值。
- 例如,以下代码:
{{eq fun | 1= template<class ForwardIt, class T> void fill(ForwardIt first, ForwardIt last, const T& value) { for (; first != last; ++first) *first = value; } | 2= template<class OutputIt, class Size, class T> OutputIt fill_n(OutputIt first, Size count, const T& value) { for (Size i = 0; i < count; i++) *first++ = value; return first; } }}
- 会生成
版本一 |
---|
template<class ForwardIt, class T>void fill(ForwardIt first, ForwardIt last, const T& value){for(; first != last;++first)*first = value;} |
版本二 |
template<class OutputIt, class Size, class T> OutputIt fill_n(OutputIt first, Size count, const T& value){for(Size i =0; i < count; i++)*first++= value;return first;} |
{{eq impl|代码1 |代码2 (可选)|... |代码4 (可选)|标题1 (可选)|... |标题4 (可选)|lang=语言 (可选)}}
额外的参数:
{{eq impl|ver1=链接1 |... |ver4=链接4 (可选)}}
- 与 {{eq fun}} 相同,但带有两个额外能力:
- 通过可选的参数
title1=
你的标题, ...,title4=
你的标题 来使用自定义标题替换任意默认标题。默认标题与前面提到的模板 {{eq fun}} 一致,即 版本一, ..., 版本四。 - 在标题文本“下面”自动生成内部链接。当指定了
verN
时,此模板生成目标名字为“版本 num”的内部 HTML 链接。例如,若有 ver2=3 则将产生内部链接“#版本 3”。此种能力可以和 {{dcla}} 和 {{dcl rev multi}} 所产生的内部锚点相配合,以将 可能实现 代码段连接到 纲要 部分的声明。
{{example|描述 (可选)|lang=语言 (可选)|std=语言标准 (可选)|code=要展示的代码 |p=输出不确定时为true (可选)|output=样例输出 (可选)}}
- 示例的基本模板。如果
code
不存在,那么该模板会产生 {{todo}}。lang
默认为 {{get lang}} 返回的值。output
指定代码所显示的输出。如果输出不确定,应当将设p
为true
以指示这点(显示可能的输出,而非单纯的输出)。
- 下列语言标准可用:
- cxx98, cxx03, cxx11, cxx14, c89, c99, c11
- 例如,以下代码:
{{example | 注释字符串 | code= int main() { __builtin_puts("你好,C++"); } | p=true | output= 你好,C++ }}
- 会产生以下内容:
注释字符串
int main(){ __builtin_puts("你好,C++");}
可能的输出:
你好,C++
从 Template:source/doc嵌入上方文档。(编辑 | 历史) 此页面的子页面。 |
[编辑]链接与锚点
这些是用于制作 HTML 超链接和 HTML 锚点的模板。
[编辑]锚点
{{anchor|1 |2 (可选)|3 (可选)|... (可选)|10 (可选)}} - 创建一个或多个(最多 10 个)HTML 锚点。
[编辑]绝对链接
[编辑]正常字体
{{lt|路径 |标题 (可选)}} - 用绝对路径链接页面。默认标题只有路径的最后一部分。
- 例如:
{{lt|cpp/language/statements}}
会产生链接:statements。 - 例如:
{{lt|cpp/language/statements|带标签语句}}
会产生链接:带标签语句。 - 注意:前面的例子只是使用标准模板创建以下相同链接
[
[cpp/language/statements|带标签语句
]]
的另一种方式,它也会产生带标签语句。
{{ls|路径#段落 }} - 用绝对路径链接页面的某个段落(锚点)。标题就是段落。要创建到同页面的链接,路径 部分应留空。
{{lsd|路径#段落 }} - 用绝对路径链接页面的某个段落或锚点。标题就是首字母小写后的段落。要创建到同页面的链接,路径 部分应留空。
[编辑]电传字体
{{ltt|路径 |标题 (可选)}} - 用绝对路径链接页面。默认标题只有路径的最后一部分。
- 例如:
{{ltt|cpp/language/switch}}
会产生链接:switch。 - 例如:
{{ltt|cpp/language/switch|switch(expr)}}
会产生链接:switch(expr)。
{{ltf|路径 |标题 (可选)|args=实参 (可选)}} - 用绝对路径链接页面。默认标题只有路径的最后一部分。链接以 teletype
字体出现。后附指示函数的括号,包围可能提供的实参。
- 例如:
{{ltf|cpp/error/terminate}}
会产生链接:terminate()。 - 例如:
{{ltf|cpp/error/terminate|std::terminate}}
会产生链接:std::terminate()。 - 例如:
{{ltf|cpp/error/set_terminate|std::set_terminate|args=nullptr}}
会产生链接:std::set_terminate(nullptr)。
{{ltp|路径 |标题 (可选)|targs=模板实参 (可选)}} - 用绝对路径链接页面。默认标题只有路径的最后一部分。链接以 teletype
字体出现。后附指示模板的尖括号,包围可能提供的模板实参。
- 例如:
{{ltp|cpp/container/vector}}
会产生链接:vector<>。 - 例如:
{{ltp|cpp/container/vector|targs=int}}
会产生链接:vector<int>。
{{ltpf|路径 |标题 (可选)|targs=模板实参 (可选)|args=实参 (可选)}} - 用绝对路径链接页面。默认标题只有路径的最后一部分。链接以 teletype
字体出现。后附指示模板的尖括号,包围可能提供的模板实参。然后再后附指示函数的括号,包围可能提供的实参。
- 例如:
{{ltpf|cpp/container/vector/vector|targs=int|args=5}}
会产生链接:vector<int>(5)。 - 例如:
{{ltpf|cpp/locale/use_facet|targs=Facet|args=loc}}
会产生链接:use_facet<Facet>(loc)。
{{lst|路径#段落 }} - 制作到给定绝对路径 中段落(锚点)的链接。链接标题就是段落。要创建到同页面的链接,路径 部分应留空。
- 示例:
{{lst|cpp/ranges#maybe-const}}
会产生链接:maybe-const
。 - 示例:
{{lst|#top}}
会产生链接:top
。 - 示例:
{{lst|#top_}}
会产生链接:top_
(注意链接尾部下划线字符被自动清楚)。
{{l2tt|路径 |标题1 (可选)|标题2 (可选)}} - 用绝对路径制作到页面的链接。在其间插入 ::
。这些部分之一能被 标题1 和 标题2 覆写。链接以 teletype
字体出现。
- 例如:
{{l2tt|cpp/container/vector/size}}
会产生链接:vector::size。 - 例如:
{{l2tt|cpp/container/vector/size|size() const}}
会产生链接:vector::size() const。 - 例如:
{{l2tt|cpp/container/vector/size|size()|std::vector<T>}}
会产生链接:std::vector<T>::size()。
{{l2tf|路径 |标题1 (可选)|标题2 (可选)|args=实参 (可选)|suffix=后缀 (可选)}} - 用绝对路径制作到页面的链接。在其间插入 ::
。这些部分之一能被 标题1 和 标题2 覆写。链接以 teletype
字体出现。后附指示函数的括号,包围可能提供的 实参 并后随可能提供的 后缀。
- 例如:
{{l2tf|cpp/container/vector/size}}
会产生链接:vector::size()。 - 例如:
{{l2tf|cpp/container/vector/size|suffix=const}}
会产生链接:vector::size() const。 - 例如:
{{l2tf|cpp/container/vector/size|size|std::vector<T>}}
会产生链接:std::vector<T>::size()。
[编辑]电传斜体
{{lti|路径 |标题 (可选)}} - 用绝对路径链接页面。默认标题只有路径的最后一部分。
- 例如:
{{lti|cpp/concepts/boolean-testable}}
会产生链接:boolean-testable。
{{ltpi|路径 |标题 (可选)|targs=模板实参 (可选)}} - 用绝对路径链接页面。默认标题只有路径的最后一部分。链接以 teletype
字体出现,其中模板名称以斜体 出现。后附指示模板的尖括号,包围可能提供的模板实参。
- 例如:
{{ltpi|cpp/concepts/boolean-testable}}
会产生链接:boolean-testable <>。 - 例如:
{{ltpi|cpp/concepts/boolean-testable|targs=int}}
会产生链接:boolean-testable <int>。
{{lsi|路径#段落 }} - 用绝对路径链接页面的某个段落(锚点)。标题就是段落。要创建到同页面的链接,路径 部分应留空。
- 例如:
{{lsi|cpp/ranges#maybe-const}}
会产生链接:maybe-const
。 - 例如:
{{lsi|#top}}
会产生链接:top
。 - 例如:
{{lsi|#top_}}
会产生链接:top_
(注意链接尾部下划线字符被自动清楚)。
[编辑]带前缀 std::
的绝对链接
以下便利模板会生成标题开头是 std::
的链接。它们可以在 {{lc}} 无法生成链接时使用。所有链接都以电传字体出现。
{{ltt std|路径 }} - 用绝对路径链接页面。标题是 std::
后随路径的最后一部分。
- 例如:
{{ltt std|cpp/container/mdspan}}
会产生链接:std::mdspan。
{{ltf std|路径 }} - 用绝对路径链接页面。标题是 std::
后随路径的最后一部分以及指示函数的括号。
- 例如:
{{ltf std|cpp/io/print}}
会产生链接:std::print()。
{{l2tt std|路径 }} - 用绝对路径链接页面。标题是 std::
后随路径的最后两部分(以 std::
分隔)。
- 例如:
{{l2tt std|cpp/utility/basic_stacktrace/current}}
会产生链接:std::basic_stacktrace::current。
{{l2tf std|路径 }} - 用绝对路径链接页面。标题是 std::
后随路径的最后两部分(以 std::
分隔)以及指示函数的括号。
- 例如:
{{l2tf std|cpp/utility/expected/value}}
会产生链接:std::expected::value()。
[编辑]相对链接
[编辑]正常字体
{{pp}} - 返回上级页面(如果有)的名字,很大可能是功能点的名字。内部空格(如果有)替换为下划线。
{{rl|路径 |标题 (可选)}} - 制作到相对于此页面的页面(即子页面)的链接。
{{rlp|路径 |标题 (可选)}} - 制作到相对于上级页面的页面的链接。
{{rlp|/ |标题 }} - 制作到上级页面的链接。
{{rlps|路径#段落 }} - 制作到相对于上级页面的页面的段落(锚点)的链接。链接标题就是段落。
{{rlpsd|路径#段落 }} - 制作到相对于上级页面的页面的段落(锚点)的链接。链接标题就是首字母小写后的段落。
[编辑]电传字体
{{ppt}} - 返回上级页面(如果有)的名字。内部空格(如果有)替换为下划线。
{{rlt|路径 |标题 (可选)}} - 制作到相对于此页面的页面(即子页面)的链接。
{{rlpt|路径 |标题 (可选)}} - 制作到相对于上级页面的页面的链接。
{{rlpt|/ |标题 }} - 制作到上级页面的链接。
{{rlpf|路径 |标题 (可选)|args=实参 (可选)}} - 制作到相对于上级页面的页面的链接。后附指示函数的括号,包围可能提供的 实参。
{{rlpst|路径#段落 }} - 制作到相对于上级页面的页面中 段落(锚点)的链接。生成的链接标题就是段落名。
{{ttt|标识符 }} - (通过 #top 链接)制作到相当前页面的链接。
[编辑]电传斜体
{{ppi}} - 返回上级页面(如果有)的名字。内部空格(如果有)替换为下划线。
{{rli|路径 |标题 (可选)}} - 制作到相对于此页面的页面(即子页面)的链接。
{{rlpi|路径 |标题 (可选)}} - 制作到相对于上级页面的页面的链接。
{{rlpi|/ |标题 }} - 制作到上级页面的链接。
{{rlpsi|路径#段落 }} - 制作到相对于上级页面的页面的段落(锚点)的链接。链接标题就是段落。
[编辑]修饰后的链接
{{attr|属性 |标题 (可选)|额外标题 (可选)|lang=语言 (可选)}}
- 属性 - 属性说明符的名字。
- 标题 - 属性说明符的标题。
- 额外标题 - 标题后的额外元素。
- 语言 - cpp 或 c。如果没有提供语言,那么就会使用 {{get lang}}。
- 例如:
{{attr|assume}}
会产生[[assume]]
。 - 例如:
{{attr|noreturn|_Noreturn|lang=c}}
会产生[[_Noreturn]]
。 - 例如:
{{attr|deprecated|3=("because")}}
会产生[[deprecated("because")]]
。
从 Template:rl/doc嵌入上方文档。(编辑 | 历史) 此页面的子页面。 |
[编辑]注解
[编辑]{{mark}} 模板族
创建一个注解。
- 通用
{{mark|文本 |class=类 (可选)}} - 创建包含给定文本 的注解,可以额外提供类 用于样式处理。
- 例如:{{mark|文本}} 会生成 (文本)。
{{mark rev|文本 |class=类 (可选)}} - 创建包含给定文本 的注解,可以额外提供类 用于样式处理。
- 例如:{{mark rev|C++1998 起}} 会生成 (C++1998 起)。
{{mark tooltip|文本 |提示信息 |class=类 (可选)}} - 创建包含给定文本 且带提示信息 的注解,可以额外提供类 用于样式处理。
- 例如:{{mark tooltip|已完成 99%|不支持 XXX}} 会生成 (已完成 99%*)。
- 杂项
模板 | 注解 |
---|---|
{{mark attribute}} | (属性指示符) |
{{mark deprecated}} | (弃用) |
{{mark optional}} | (可选) |
{{mark cond present}} | (有条件提供) |
{{mark implicit}} | (隐式声明) |
{{mark concept}} | (概念) |
{{mark expos}} | (仅用于阐述*) |
{{mark expos concept}} | (仅用于阐述的概念*) |
{{mark tag}} | (标签) |
{{mark expos mem type}} | (仅用于阐述的成员类型*) |
{{mark named req}} | (具名要求) |
{{mark typedef}} | (typedef) |
{{mark type alias}} | (类型别名) |
{{mark enum}} | (枚举) |
{{mark mem enum}} | (公开成员枚举) |
{{mark keyword}} | (关键词) |
{{mark macro keyword}} | (关键词宏) |
{{mark preprocessing directive}} | (预处理指令) |
{{mark macro opr}} | (运算符宏) |
{{mark language}} | (语言) |
- C++ 标准
- C 标准
模板 | 注解 |
---|---|
{{mark c95}} | (C95) |
{{mark since c95}} | (C95 起) |
{{mark until c95}} | (C95 前) |
{{mark c99}} | (C99) |
{{mark since c99}} | (C99 起) |
{{mark until c99}} | (C99 前) |
{{mark c11}} | (C11) |
{{mark since c11}} | (C11 起) |
{{mark until c11}} | (C11 前) |
{{mark c17}} | (C17) |
{{mark since c17}} | (C17 起) |
{{mark deprecated c17}} | (C17 弃用) |
{{mark until c17}} | (C17 前) |
{{mark c23}} | (C23) |
{{mark since c23}} | (C23 起) |
{{mark deprecated c23}} | (C23 弃用) |
{{mark until c23}} | (C23 前) |
{{mark since none}} | ({std} 起) |
{{mark until none}} | ({std} 前) |
- 组合
{{mark life|appear=c++xx (可选)|since=c++xx (可选)|deprecated=c++xx (可选)|until=c++xx (可选)|removed=c++xx (可选)|br=yes (可选)}}
- 例:
{{mark life|since=c++11|deprecated=c++17|removed=c++20}}
结果为 - (C++11 起)(C++17 弃用)(C++20 移除)
- 例:
{{mark life|appear=c++11|until=c++20}}
结果为 (C++11)(C++20 前)
- 能设置可选参数 br 为 yes 以便在单独的行中显示每个注解,比如
- 例:
{{mark life|since=c++11|deprecated=c++17|removed=c++20|br=yes}}
结果为 - (C++11 起)
(C++17 弃用)
(C++20 移除)
- 技术规范
模板 | 注解 |
---|---|
{{mark since libfund ts}} | (库基础 TS) |
{{mark since libfund ts 2}} | (库基础 TS v2) |
{{mark since libfund ts 3}} | (库基础 TS v3) |
{{mark since fs ts}} | (文件系统 TS) |
{{mark since parallelism ts}} | (并行 TS) |
{{mark since parallelism ts 2}} | (并行 TS v2) |
{{mark since concepts ts}} | (概念 TS) |
{{mark since concurrency ts}} | (并发 TS) |
{{mark since concurrency ts 2}} | (并发 TS v2) |
{{mark since tm ts}} | (TM TS) |
{{mark since special functions tr}} | (特殊函数 TR) |
{{mark since modules ts}} | (模块 TS) |
{{mark since coro ts}} | (协程 TS) |
{{mark since reflection ts}} | (反射 TS) |
- 函数
模板 | 注解 |
---|---|
{{mark fun}} | (函数) |
{{mark expos fun}} | (仅用于阐述的函数*) |
{{mark tfun}} | (函数模板) |
{{mark expos tfun}} | (仅用于阐述的函数模板*) |
{{mark mem fun}} | (公开成员函数) |
{{mark mem sfun}} | (公开静态成员函数) |
{{mark mem vfun}} | (虚公开成员函数) |
{{mark priv mem fun}} | (私有成员函数) |
{{mark prot mem fun}} | (受保护成员函数) |
{{mark prot mem vfun}} | (虚受保护成员函数) |
{{mark expos mem fun}} | (仅用于阐述的成员函数*) |
{{mark expos mem sfun}} | (仅用于阐述的静态成员函数*) |
{{mark macro fun}} | (宏函数) |
{{mark macro tfun}} | (泛型函数宏) |
- 类
模板 | 注解 |
---|---|
{{mark class}} | (类) |
{{mark tclass}} | (类模板) |
{{mark talias}} | (别名模板) |
{{mark ptclass}} | (类模板特化) |
{{mark mem class}} | (公开成员类) |
{{mark priv mem class}} | (私有成员类) |
{{mark prot mem class}} | (受保护成员类) |
{{mark mem tclass}} | (公开成员类模板) |
{{mark priv mem tclass}} | (私有成员类模板) |
{{mark expos mem class}} | (仅用于阐述的成员类*) |
{{mark expos mem tclass}} | (仅用于阐述的成员类模板*) |
{{mark priv ntclass}} | (私有嵌套类模板) |
- 常量
模板 | 注解 |
---|---|
{{mark macro const}} | (宏常量) |
{{mark const}} | (常量) |
{{mark mem const}} | (公开成员常量) |
{{mark mem sconst}} | (公开静态成员常量) |
{{mark expos mem sconst}} | (仅用于阐述的静态成员常量*) |
- 对象
模板 | 注解 |
---|---|
{{mark mem obj}} | (公开成员对象) |
{{mark priv mem obj}} | (私有成员对象) |
{{mark prot mem obj}} | (受保护成员对象) |
{{mark expos mem obj}} | (仅用于阐述的成员对象*) |
{{mark expos mem var}} | (仅用于阐述的变体成员对象*) |
{{mark custpt}} | (定制点对象) |
{{mark rao}} | (范围适配器对象) |
{{mark niebloid}} | (算法函数对象) |
- 容器标记支持
{{cpp/container/mark std|容器}} - 根据给定标准 容器 的版本,输出 (C++11), (C++20), (C++23) 等。对于 C++11 前的容器的输出为空。
[编辑]示例
{{cpp/container/mark std|vector}}
结果为 (空){{cpp/container/mark std|array}}
结果为 (C++11){{cpp/container/mark std|unordered_set}}
结果为 (C++11){{cpp/container/mark std|span}}
结果为 (C++20){{cpp/container/mark std|flat_set}}
结果为 (C++23)
从 Template:mark/doc嵌入上方文档。(编辑 | 历史) 此页面的子页面。 |
[编辑]{{cmark}} 模板族
从 Template:cmark/doc嵌入上方文档。(编辑 | 历史) 此页面的子页面。 |
[编辑]标注版本
用于表示描述中的一部分仅对某一特定版本的标准有效。
{{rev begin|noborder=无边框时为true (可选)}}
- 以上标记开始一段仅对某一特定版本有效的文字。如果
noborder
参数是 true,显示的表格将不包含表格线,并且填充将尽可能小。
{{rev|since=起始标准 (可选)|until=截止标准 (可选)|文本 }}
- 指示文本 只对标准的起始标准 版本至截止标准 版本有效(不包括截止标准)。
{{rev end}}
- 以上标记结束仅对某一特定版本有效的文字的片段。
{{rrev|noborder=无边框时为true (可选)|since=起始标准 (可选)|until=截止标准 (可选)|文本 }}
- 如果既不提供起始标准 也不提供截止标准,那么就只会单独展示文本。
{{rrev multi|noborder=无边框时为true (可选)|sinceX=起始标准 (可选)|untilX=截止标准 (可选)|revX=文本 |... }}
- 组合的 {{rev begin}}/{{rev}}/{{rev end}} 。支持至多 7 个片段。
sinceX
的默认值为untilX-1
而untilX
的默认值为sinceX+1
。从而,这在片段相对短而校订版本范围连续时最有用。此模板可被替换。
{{rev inl|id=id (可选)|since=起始标准 (可选)|until=截止标准 (可选)|noborder=无边框时为true (可选)|文本 }}
- 如果既不提供起始标准 也不提供截止标准,那么就只会单独展示文本。
如果 noborder
参数是 true,那么忽略表格线。
{{rel|table }} - 允许表格的首行与 @@
一族生成的标签对齐。
维基文本 | 效果 | ||
---|---|---|---|
@1@ 第一项 | 1) 第一项 2)
| ||
@1@ 第一项 | 1) 第一项 2)
|
从 Template:rev/doc嵌入上方文档。(编辑 | 历史) 此页面的子页面。 |
[编辑]导航栏
{{navbar | style = | heading1 = | content1 = | heading2 = | content2 = | heading3 = | content3 = ... | heading8 = | content8 = }}
从 Template:navbar/doc嵌入上方文档。(编辑 | 历史) 此页面的子页面。 |
[编辑]杂项
[编辑]空格
[编辑]处理空格字符
{{space|数字 }} ——输出数字 个空格符。注意,与 {{nbsp}}/{{nbspt}} 族的“空白”不同,开头和末尾处的空格字符可以用 {{trim}} 修建掉。
{{space as|文本 }} ——输出与文本 中的字符数等量的空格符。适用于模板化代码的目的。
{{trim|文本 }} ——修剪前导和尾随的空白符
{{sep}} ——在字符间插入微小的不间断空格以避免重叠,比如斜体字符。例如:II; 与 I I。
{{nbsp|数字 (可选)}} ——生成数字 个不间断空格字符(HTML: )。没有参数是插入一个这种空格字符。(开头或末尾处的)这种“空格”不能用 {{trim}} 修建掉。
{{nbspt|数字 (可选)}} ——与 {{nbsp}} 一样生成空格字符,但是具有等宽
(teletype
)字体。这种“空格”不能用 {{trim}} 修建掉。
{{void}} ——如同插入空的空格,有时需要它阻止 wiki-media 预处理器生成 HTML 生成。例如 foo<Ref> 中 <Ref> 部分会引起 HTML 引擎生成引用列表。可以通过写成 {{c|foo<{{void}}Ref>}}
阻止该行为。
{{br}} ——表现与 <br> HTML 标签类似,但是只会在包围盒无法以单行容纳字符串时才会换行。可用于在表格中在需要时分割长标识符。
例如 __cpp_lib_allocator_traits_is_always_equal
标记为
{{tt|__cpp_lib_allocator_}}{{br}}{{tt|traits_is_always_equal}}
。
然后渲染包含它的盒时会生成:
__cpp_lib_allocator_ traits_is_always_equal |
__cpp_lib_allocator_ traits_is_always_equal |
从 Template:space/doc嵌入上方文档。(编辑 | 历史) 此页面的子页面。 |
[编辑]工具模板(有意地仅为其他模板所用)
[编辑]转型要求
这是用于说明某个类型必须能转换到另一类型的模板之一。所有这些模板均能发布两种要求之一:必须能转换一个特定类型的对象到另一类型,或必须能解引用一个特定类型的对象,然后将它转换到另一类型。此行为依靠提供的参数( t
意味着普通类型, p
——必须首先解引用的类型)。
{{cast rreq| 基本类型 | rt=类型或 rp=指针类型 }} —— 基本类型 必须能转换到 rt
或 *rp
。
{{cast req1| 基本类型 | t1=类型或 p1=指针类型 }} —— t1
或 *p1
必须能转换到 基本类型。
{{cast req2| 基本类型1 | 基本类型2 | t1=type或 p1=指针类型 | t2=类型或 p2=指针类型(可选)}} —— t1
或 *p1
必须能转换到 base_type1 或 t2
或 *p2
必须能转换到 基本类型2。若 t2
及 p2
均未被提供,则假设 t1
或 *p1
必须能转换到 基本类型1 或 基本类型2 两者。
从 Template:cast rreq/doc嵌入上方文档。(编辑 | 历史) 此页面的子页面。 |