 C++高性能并行编程与优化 -  课件 - 03 现代 C++ 进阶:模板元编程现代 C++ 进阶:模板元编程 by 彭于斌( @archibate ) 往期录播: https://www.bilibili.com/video/BV1fa411r7zp 课程 PPT 和代码: https://github.com/parallel101/course 高性能并行编程与优化 - 课程大纲 • 分为前半段和后半段,前半段主要介绍现代 C++ ,后半段主要介绍并行编程与优化。 • 但是却没有出错,这是因为模板没有被调用,所以不会被实际编译! • 而只有当 main 调用了这个函数,才会被编译,才会报错! • 用一个假模板实现延迟编译的技术,可以加快编译的速度,用于代理模式等。 模板函数:一个例子 • 比如,要打印任意一个 vector : 模板函数:配合运算符重载 • 实现用 std::cout << a 打印任意 vector : 模板函数:大家学废了吗! decltype(auto) p = func(); • 会自动推导为 func() 的返回类型。 • 和下面这种方式等价: • decltype(func()) p = func(); • 在代理模式中,用于完美转发函数返回值。比如: • decltype(auto) at(size_t i) const { • return m_internal_class.at(i); } using0 码力 | 82 页 | 12.15 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 03 现代 C++ 进阶:模板元编程现代 C++ 进阶:模板元编程 by 彭于斌( @archibate ) 往期录播: https://www.bilibili.com/video/BV1fa411r7zp 课程 PPT 和代码: https://github.com/parallel101/course 高性能并行编程与优化 - 课程大纲 • 分为前半段和后半段,前半段主要介绍现代 C++ ,后半段主要介绍并行编程与优化。 • 但是却没有出错,这是因为模板没有被调用,所以不会被实际编译! • 而只有当 main 调用了这个函数,才会被编译,才会报错! • 用一个假模板实现延迟编译的技术,可以加快编译的速度,用于代理模式等。 模板函数:一个例子 • 比如,要打印任意一个 vector : 模板函数:配合运算符重载 • 实现用 std::cout << a 打印任意 vector : 模板函数:大家学废了吗! decltype(auto) p = func(); • 会自动推导为 func() 的返回类型。 • 和下面这种方式等价: • decltype(func()) p = func(); • 在代理模式中,用于完美转发函数返回值。比如: • decltype(auto) at(size_t i) const { • return m_internal_class.at(i); } using0 码力 | 82 页 | 12.15 MB | 1 年前3
 Hello 算法 1.0.0b4 C++版运行代码示例 第一步:安装本地编程环境。请参照附录教程进行安装,如果已安装则可跳过此步骤。 第二步:下载代码仓。如果已经安装 Git ,可以通过以下命令克隆本仓库。 git clone https://github.com/krahets/hello-algo.git 当然,你也可以点击“Download ZIP”直接下载代码压缩包,然后在本地解压即可。 0. 前言 hello‑algo 语言设计之初,人们认 为 16 位足以表示所有可能的字符。然而,这是一个不正确的判断。后来 Unicode 规范扩展到了超过 16 位,所以 Java 中的字符现在可能由一对 16 位的值(称为“代理对”)表示。 ‧ JavaScript 和 TypeScript 的字符串使用 UTF‑16 编码的原因与 Java 类似。当 JavaScript 语言在 1995 年被 Netscape 公司首次引入时,Unicode 操作系统,都广泛地使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用 2 字节或 4 字节,因此丧失了等长编码的优势。另一方面,处理代理对需要增加额外代码,这增加了编程的复杂性和 Debug 难度。 出于以上原因,部分编程语言提出了不同的编码方案:0 码力 | 343 页 | 27.39 MB | 1 年前3 Hello 算法 1.0.0b4 C++版运行代码示例 第一步:安装本地编程环境。请参照附录教程进行安装,如果已安装则可跳过此步骤。 第二步:下载代码仓。如果已经安装 Git ,可以通过以下命令克隆本仓库。 git clone https://github.com/krahets/hello-algo.git 当然,你也可以点击“Download ZIP”直接下载代码压缩包,然后在本地解压即可。 0. 前言 hello‑algo 语言设计之初,人们认 为 16 位足以表示所有可能的字符。然而,这是一个不正确的判断。后来 Unicode 规范扩展到了超过 16 位,所以 Java 中的字符现在可能由一对 16 位的值(称为“代理对”)表示。 ‧ JavaScript 和 TypeScript 的字符串使用 UTF‑16 编码的原因与 Java 类似。当 JavaScript 语言在 1995 年被 Netscape 公司首次引入时,Unicode 操作系统,都广泛地使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用 2 字节或 4 字节,因此丧失了等长编码的优势。另一方面,处理代理对需要增加额外代码,这增加了编程的复杂性和 Debug 难度。 出于以上原因,部分编程语言提出了不同的编码方案:0 码力 | 343 页 | 27.39 MB | 1 年前3
 Hello 算法 1.1.0 C++ 版第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 语言设计之初,人们认 为 16 位足以表示所有可能的字符。然而,这是一个不正确的判断。后来 Unicode 规范扩展到了超过 16 位,所以 Java 中的字符现在可能由一对 16 位的值(称为“代理对”)表示。 ‧ JavaScript 和 TypeScript 的字符串使用 UTF‑16 编码的原因与 Java 类似。当 1995 年 Netscape 公司 首次推出 JavaScript 操作系统)都广泛使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用 2 字节或 4 字 节,从而丧失了等长编码的优势。另一方面,处理代理对需要额外增加代码,这提高了编程的复杂性和调试 难度。 出于以上原因,部分编程语言提出了一些不同的编码方案。0 码力 | 379 页 | 18.47 MB | 1 年前3 Hello 算法 1.1.0 C++ 版第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 语言设计之初,人们认 为 16 位足以表示所有可能的字符。然而,这是一个不正确的判断。后来 Unicode 规范扩展到了超过 16 位,所以 Java 中的字符现在可能由一对 16 位的值(称为“代理对”)表示。 ‧ JavaScript 和 TypeScript 的字符串使用 UTF‑16 编码的原因与 Java 类似。当 1995 年 Netscape 公司 首次推出 JavaScript 操作系统)都广泛使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用 2 字节或 4 字 节,从而丧失了等长编码的优势。另一方面,处理代理对需要额外增加代码,这提高了编程的复杂性和调试 难度。 出于以上原因,部分编程语言提出了一些不同的编码方案。0 码力 | 379 页 | 18.47 MB | 1 年前3
 Hello 算法 1.0.0b5 C++版运行代码的前置工作主要分为三步。 第一步:安装本地编程环境。请参照附录教程进行安装,如果已安装则可跳过此步骤。 第二步:下载代码仓。如果已经安装 Git ,可以通过以下命令克隆本仓库。 git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”直接下载代码压缩包,然后在本地解压即可。 第 0 语言设计之初,人们认 为 16 位足以表示所有可能的字符。然而,这是一个不正确的判断。后来 Unicode 规范扩展到了超过 16 位,所以 Java 中的字符现在可能由一对 16 位的值(称为“代理对”)表示。 ‧ JavaScript 和 TypeScript 的字符串使用 UTF‑16 编码的原因与 Java 类似。当 JavaScript 语言在 1995 年被 Netscape 公司首次引入时,Unicode 操作系统,都广泛地使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用 2 字节或 4 字节,从而丧失了等长编码的优势。另一方面,处理代理对需要增加额外代码,这增加了编程的复杂性和 Debug 难度。 出于以上原因,部分编程语言提出了一些不同的编码方案。0 码力 | 377 页 | 30.69 MB | 1 年前3 Hello 算法 1.0.0b5 C++版运行代码的前置工作主要分为三步。 第一步:安装本地编程环境。请参照附录教程进行安装,如果已安装则可跳过此步骤。 第二步:下载代码仓。如果已经安装 Git ,可以通过以下命令克隆本仓库。 git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”直接下载代码压缩包,然后在本地解压即可。 第 0 语言设计之初,人们认 为 16 位足以表示所有可能的字符。然而,这是一个不正确的判断。后来 Unicode 规范扩展到了超过 16 位,所以 Java 中的字符现在可能由一对 16 位的值(称为“代理对”)表示。 ‧ JavaScript 和 TypeScript 的字符串使用 UTF‑16 编码的原因与 Java 类似。当 JavaScript 语言在 1995 年被 Netscape 公司首次引入时,Unicode 操作系统,都广泛地使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用 2 字节或 4 字节,从而丧失了等长编码的优势。另一方面,处理代理对需要增加额外代码,这增加了编程的复杂性和 Debug 难度。 出于以上原因,部分编程语言提出了一些不同的编码方案。0 码力 | 377 页 | 30.69 MB | 1 年前3
 Hello 算法 1.0.0 C++版第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 语言设计之初,人们认 为 16 位足以表示所有可能的字符。然而,这是一个不正确的判断。后来 Unicode 规范扩展到了超过 16 位,所以 Java 中的字符现在可能由一对 16 位的值(称为“代理对”)表示。 ‧ JavaScript 和 TypeScript 的字符串使用 UTF‑16 编码的原因与 Java 类似。当 1995 年 Netscape 公司 首次推出 JavaScript 操作系统)都广泛使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用 2 字节或 4 字 节,从而丧失了等长编码的优势。另一方面,处理代理对需要额外增加代码,这提高了编程的复杂性和调试 难度。 出于以上原因,部分编程语言提出了一些不同的编码方案。0 码力 | 378 页 | 17.59 MB | 1 年前3 Hello 算法 1.0.0 C++版第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 语言设计之初,人们认 为 16 位足以表示所有可能的字符。然而,这是一个不正确的判断。后来 Unicode 规范扩展到了超过 16 位,所以 Java 中的字符现在可能由一对 16 位的值(称为“代理对”)表示。 ‧ JavaScript 和 TypeScript 的字符串使用 UTF‑16 编码的原因与 Java 类似。当 1995 年 Netscape 公司 首次推出 JavaScript 操作系统)都广泛使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用 2 字节或 4 字 节,从而丧失了等长编码的优势。另一方面,处理代理对需要额外增加代码,这提高了编程的复杂性和调试 难度。 出于以上原因,部分编程语言提出了一些不同的编码方案。0 码力 | 378 页 | 17.59 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 C++ 版第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 语言设计之初,人们认 为 16 位足以表示所有可能的字符。然而,这是一个不正确的判断。后来 Unicode 规范扩展到了超过 16 位,所以 Java 中的字符现在可能由一对 16 位的值(称为“代理对”)表示。 ‧ JavaScript 和 TypeScript 的字符串使用 UTF‑16 编码的原因与 Java 类似。当 1995 年 Netscape 公司 首次推出 JavaScript 操作系统)都广泛使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用 2 字节或 4 字 节,从而丧失了等长编码的优势。另一方面,处理代理对需要额外增加代码,这提高了编程的复杂性和调试 难度。 出于以上原因,部分编程语言提出了一些不同的编码方案。0 码力 | 379 页 | 18.48 MB | 10 月前3 Hello 算法 1.2.0 简体中文 C++ 版第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 语言设计之初,人们认 为 16 位足以表示所有可能的字符。然而,这是一个不正确的判断。后来 Unicode 规范扩展到了超过 16 位,所以 Java 中的字符现在可能由一对 16 位的值(称为“代理对”)表示。 ‧ JavaScript 和 TypeScript 的字符串使用 UTF‑16 编码的原因与 Java 类似。当 1995 年 Netscape 公司 首次推出 JavaScript 操作系统)都广泛使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用 2 字节或 4 字 节,从而丧失了等长编码的优势。另一方面,处理代理对需要额外增加代码,这提高了编程的复杂性和调试 难度。 出于以上原因,部分编程语言提出了一些不同的编码方案。0 码力 | 379 页 | 18.48 MB | 10 月前3
 Hello 算法 1.2.0 繁体中文 C++ 版第一步:安裝本地程式設計環境。請參照附錄所示的教程進行安裝,如果已安裝,則可跳過此步驟。 第二步:克隆或下載程式碼倉庫。前往 GitHub 倉庫。如果已經安裝 Git ,可以透過以下命令克隆本倉庫: git clone https://github.com/krahets/hello-algo.git 當然,你也可以在圖 0‑4 所示的位置,點選“Download ZIP”按鈕直接下載程式碼壓縮包,然後在本地解壓 即可。 語言設計之初,人們 認為 16 位足以表示所有可能的字元。然而,這是一個不正確的判斷。後來 Unicode 規範擴展到了超 過 16 位,所以 Java 中的字元現在可能由一對 16 位的值(稱為“代理對”)表示。 ‧ JavaScript 和 TypeScript 的字串使用 UTF‑16 編碼的原因與 Java 類似。當 1995 年 Netscape 公司 首次推出 JavaScript 作業系統)都廣泛使用 UTF‑16 編碼。 由於以上程式語言對字元數量的低估,它們不得不採取“代理對”的方式來表示超過 16 位長度的 Unicode 字元。這是一個不得已為之的無奈之舉。一方面,包含代理對的字串中,一個字元可能佔用 2 位元組或 4 位 元組,從而喪失了等長編碼的優勢。另一方面,處理代理對需要額外增加程式碼,這提高了程式設計的複雜 性和除錯難度。 出於以上原因,部分程式語言提出了一些不同的編碼方案。0 码力 | 379 页 | 18.79 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 C++ 版第一步:安裝本地程式設計環境。請參照附錄所示的教程進行安裝,如果已安裝,則可跳過此步驟。 第二步:克隆或下載程式碼倉庫。前往 GitHub 倉庫。如果已經安裝 Git ,可以透過以下命令克隆本倉庫: git clone https://github.com/krahets/hello-algo.git 當然,你也可以在圖 0‑4 所示的位置,點選“Download ZIP”按鈕直接下載程式碼壓縮包,然後在本地解壓 即可。 語言設計之初,人們 認為 16 位足以表示所有可能的字元。然而,這是一個不正確的判斷。後來 Unicode 規範擴展到了超 過 16 位,所以 Java 中的字元現在可能由一對 16 位的值(稱為“代理對”)表示。 ‧ JavaScript 和 TypeScript 的字串使用 UTF‑16 編碼的原因與 Java 類似。當 1995 年 Netscape 公司 首次推出 JavaScript 作業系統)都廣泛使用 UTF‑16 編碼。 由於以上程式語言對字元數量的低估,它們不得不採取“代理對”的方式來表示超過 16 位長度的 Unicode 字元。這是一個不得已為之的無奈之舉。一方面,包含代理對的字串中,一個字元可能佔用 2 位元組或 4 位 元組,從而喪失了等長編碼的優勢。另一方面,處理代理對需要額外增加程式碼,這提高了程式設計的複雜 性和除錯難度。 出於以上原因,部分程式語言提出了一些不同的編碼方案。0 码力 | 379 页 | 18.79 MB | 10 月前3
 Contracts for C++Crab – Fable by Ivan Krylov, 18143 Copyright (c) Timur Doumler | @timur_audio | https://timur.audio Widget getWidget (index i) pre (i > 0) // precondition assertion Proposal: add contract assertions to C++4 Copyright (c) Timur Doumler | @timur_audio | https://timur.audio Widget getWidget (index i) pre (i > 0) // precondition assertion to C++ Function contract assertions5 Copyright (c) Timur Doumler | @timur_audio | https://timur.audio Widget getWidget (index i) pre (i > 0) // precondition assertion0 码力 | 181 页 | 4.44 MB | 6 月前3 Contracts for C++Crab – Fable by Ivan Krylov, 18143 Copyright (c) Timur Doumler | @timur_audio | https://timur.audio Widget getWidget (index i) pre (i > 0) // precondition assertion Proposal: add contract assertions to C++4 Copyright (c) Timur Doumler | @timur_audio | https://timur.audio Widget getWidget (index i) pre (i > 0) // precondition assertion to C++ Function contract assertions5 Copyright (c) Timur Doumler | @timur_audio | https://timur.audio Widget getWidget (index i) pre (i > 0) // precondition assertion0 码力 | 181 页 | 4.44 MB | 6 月前3
 Object Lifetime: From Start to FinishObject Lifetime From Start to Finish Thamara Andrade | https://thamara.dev/34 Me finally understanding why my code was failing… ... and realizing I didn’t really understand the rules for object Design Systems • Learning C++ since 2013 • Can’t decide if ‘std::’ is pronounced /stʌd/ or s-t-d https://thamara.dev/ 9 Hi, I’m Thamara (she/her)1011Allocation when Deallocation when static program begins }; int main() { Foo* a = nullptr; { a = new Foo(); } delete a; } 1 2 3 4 5 6 7 8 9 10 11 https://godbolt.org/z/hY7hr5Efr 32 Constructors & Destructors (2)struct Foo { Foo() { std::cout << "Foo()"0 码力 | 214 页 | 9.34 MB | 6 月前3 Object Lifetime: From Start to FinishObject Lifetime From Start to Finish Thamara Andrade | https://thamara.dev/34 Me finally understanding why my code was failing… ... and realizing I didn’t really understand the rules for object Design Systems • Learning C++ since 2013 • Can’t decide if ‘std::’ is pronounced /stʌd/ or s-t-d https://thamara.dev/ 9 Hi, I’m Thamara (she/her)1011Allocation when Deallocation when static program begins }; int main() { Foo* a = nullptr; { a = new Foo(); } delete a; } 1 2 3 4 5 6 7 8 9 10 11 https://godbolt.org/z/hY7hr5Efr 32 Constructors & Destructors (2)struct Foo { Foo() { std::cout << "Foo()"0 码力 | 214 页 | 9.34 MB | 6 月前3
 MACRO-FREE TESTING WITH C++20MACRO-FREE TESTING MACRO-FREE TESTING WITH C++20 WITH C++20 | | | | HTTPS://BOOST-EXT.GITHUB.IO/UT/CPPCON-2020 HTTPS://BOOST-EXT.GITHUB.IO/UT/CPPCON-2020 KRIS@JUSIAK.NET KRIS@JUSIAK.NET @KRISJUSIAK 1 / 14UT - UT - HTTPS://GITHUB.COM/BOOST-EXT/UT HTTPS://GITHUB.COM/BOOST-EXT/UT 2 / 14UT - UT - C++20 ( C++20 ( , , ) (*) LIMITATIONS MAY APPLY (*) LIMITATIONS MAY APPLY HTTPS://GITHUB.COM/BOOST-EXT/UT COM/BOOST-EXT/UT HTTPS://GITHUB.COM/BOOST-EXT/UT GCC-9+, CLANG-9.0+, APPLE CLANG-11.0.0+ GCC-9+, CLANG-9.0+, APPLE CLANG-11.0.0+ MSVC-2019+* MSVC-2019+* 2 / 14UT - UT - C++20 ( C++20 ( , , ) SINGLE SINGLE0 码力 | 53 页 | 1.98 MB | 6 月前3 MACRO-FREE TESTING WITH C++20MACRO-FREE TESTING MACRO-FREE TESTING WITH C++20 WITH C++20 | | | | HTTPS://BOOST-EXT.GITHUB.IO/UT/CPPCON-2020 HTTPS://BOOST-EXT.GITHUB.IO/UT/CPPCON-2020 KRIS@JUSIAK.NET KRIS@JUSIAK.NET @KRISJUSIAK 1 / 14UT - UT - HTTPS://GITHUB.COM/BOOST-EXT/UT HTTPS://GITHUB.COM/BOOST-EXT/UT 2 / 14UT - UT - C++20 ( C++20 ( , , ) (*) LIMITATIONS MAY APPLY (*) LIMITATIONS MAY APPLY HTTPS://GITHUB.COM/BOOST-EXT/UT COM/BOOST-EXT/UT HTTPS://GITHUB.COM/BOOST-EXT/UT GCC-9+, CLANG-9.0+, APPLE CLANG-11.0.0+ GCC-9+, CLANG-9.0+, APPLE CLANG-11.0.0+ MSVC-2019+* MSVC-2019+* 2 / 14UT - UT - C++20 ( C++20 ( , , ) SINGLE SINGLE0 码力 | 53 页 | 1.98 MB | 6 月前3
共 312 条
- 1
- 2
- 3
- 4
- 5
- 6
- 32














