Template:source

来自cppreference.com
{{{1}}}
[编辑] [{{purge}}]模板文档

这些是用于语法高亮的模板。


{{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=
  • 对于范围中的代码块(例如 [beginend)),应优先考虑使用 {{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=语言 (可选)}}

同 {{c}},只不过不应用背景(例如边界盒)。应当仅用于其他模板中。
例如:{{c/core|std::puts("C++");}} 会生成 std::puts("C++");


{{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>,
                        ranges::range_reference_t<R2>>


{{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 指定代码所显示的输出。如果输出不确定,应当将设 ptrue 以指示这点(显示可能的输出,而非单纯的输出)。
下列语言标准可用:
cxx98, cxx03, cxx11, cxx14, c89, c99, c11
例如,以下代码:
 {{example | 注释字符串 | code= int main() { __builtin_puts("你好,C++"); } | p=true | output= 你好,C++ }} 
会产生以下内容:

注释字符串

int main(){ __builtin_puts("你好,C++");}

可能的输出:

你好,C++
close