From 409e27deb746401aa40ee60468bde87230444b11 Mon Sep 17 00:00:00 2001 From: Wu Yongwei Date: Thu, 23 May 2024 19:45:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=B0=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 08.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/08.md b/08.md index 369bd61..15e305a 100644 --- a/08.md +++ b/08.md @@ -134,7 +134,7 @@ auto {re,im} = sqrt(z); // sqrt() 返回复数值 标准库类型 `complex` 并没有暴露其内部表示。 -在 C++17 中我们通过允许用户定义一系列 `get` 函数解决了这个问题,例如,`get<0>` 和 `get<1>` 实际上是假装将结果看作是 `tuple`。这能工作,但需要用户提供一些不优雅的重复样板式代码。关于潜在改进的讨论仍在继续,但没有明显的简化被纳入 C++20。 +在 C++17 中我们通过允许用户定义一系列 `get` 函数解决了这个问题,如 `get<0>` 和 `get<1>`,实际上是把计算结果当成 `tuple`。这能工作,但需要用户提供一些不优雅的重复样板代码。关于潜在改进的讨论仍在继续,但没有明显的简化被纳入 C++20。 有人要求让这种方式也能适用于返回数组的函数和返回带位域的 `struct` 的函数。我们加入了对那些情况的支持,所以最终设计至少比原始提案复杂了一倍。 @@ -207,7 +207,7 @@ auto x3 = any_cast(var3); // 转换 any 为了简化 `variant` 的使用,有一种访问者机制。首先我们需要一个辅助模板去定义一个重载集合: ```cpp -// 简单访问的样板: +// 简单访问的样板代码: template struct overloaded : Ts... { using Ts::operator()...; }; template overloaded(Ts...) -> overloaded; ``` @@ -217,7 +217,7 @@ template overloaded(Ts...) -> overloaded; ```cpp using var_t = std::variant; // variant 类型 -// 简单访问的样板: +// 简单访问的样板代码: template struct overloaded : Ts... { using Ts::operator()...; }; template overloaded(Ts...) -> overloaded;