Skip to content

Commit

Permalink
同步,设置外部永久链接,修改 README
Browse files Browse the repository at this point in the history
  • Loading branch information
Mq-b committed Mar 23, 2024
1 parent f81964b commit 8890f9a
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<div align="center">

<a herf="https://zh.cppreference.com/w/cpp"><img src="/image/icon.webp" width=512px alt="cpp"/></a>
<a herf="https://zh.cppreference.com/w/cpp"><img src="./image/icon.webp" width=512px alt="cpp"/></a>

# 现代 C++ 模板教程

本仓库用来存放 B 站课程 [**《现代 C++ 模板教程 2024》**](https://b23.tv/Ppq4Bsw)的教案、代码,和**作业**

任何组织和个人遵守 [CC BY-NC-ND 4.0 DEED](LICENSE) 协议即可随意使用。
任何组织和个人遵守 [CC BY-NC-ND 4.0](LICENSE) 协议即可随意使用。

[捐赠](/image/捐赠)、issues、pr 均会在致谢列表中铭记您的贡献。

Expand Down
2 changes: 1 addition & 1 deletion md/第一部分-基础知识/10了解与利用SFINAE.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ array(Type, Args...) -> array<std::enable_if_t<(std::is_same_v<Type, Args> && ..
以上示例,是显式指明了 std::enable_if 的第二个模板实参,为 `Type`。
它是我们[类模板](02类模板.md)推导指引那一节的示例的**改进版本**,我们使用 std::enable_if_t 与 C++17 折叠表达式,为它增加了约束,这几乎和 [libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/array#L292-L295) 中的代码一样。
它是我们[类模板](02类模板.md)推导指引那一节的示例的**改进版本**,我们使用 std::enable_if_t 与 C++17 折叠表达式,为它增加了约束,这几乎和 [libstdc++](https://github.com/gcc-mirror/gcc/blob/7a01cc711f33530436712a5bfd18f8457a68ea1f/libstdc%2B%2B-v3/include/std/array#L292-L295) 中的代码一样。
`(std::is_same_v<Type, Args> && ...)` 做 std::enable_if 的第一个模板实参,这里是一个一元右折叠,使用了 **`&&`** 运算符,也就是必须 std::is_same_v 全部为 true,才会是 true。简单的说就是要求类型形参包 Args 中的每一个类型全部都是一样的,不然就是替换失败。
Expand Down

0 comments on commit 8890f9a

Please sign in to comment.