diff --git a/README.md b/README.md index 605e8b3..f2b3ed9 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@
-cpp +cpp # 现代 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 均会在致谢列表中铭记您的贡献。 diff --git "a/md/\347\254\254\344\270\200\351\203\250\345\210\206-\345\237\272\347\241\200\347\237\245\350\257\206/10\344\272\206\350\247\243\344\270\216\345\210\251\347\224\250SFINAE.md" "b/md/\347\254\254\344\270\200\351\203\250\345\210\206-\345\237\272\347\241\200\347\237\245\350\257\206/10\344\272\206\350\247\243\344\270\216\345\210\251\347\224\250SFINAE.md" index 1a74a4e..babc467 100644 --- "a/md/\347\254\254\344\270\200\351\203\250\345\210\206-\345\237\272\347\241\200\347\237\245\350\257\206/10\344\272\206\350\247\243\344\270\216\345\210\251\347\224\250SFINAE.md" +++ "b/md/\347\254\254\344\270\200\351\203\250\345\210\206-\345\237\272\347\241\200\347\237\245\350\257\206/10\344\272\206\350\247\243\344\270\216\345\210\251\347\224\250SFINAE.md" @@ -174,7 +174,7 @@ array(Type, Args...) -> array && .. 以上示例,是显式指明了 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 && ...)` 做 std::enable_if 的第一个模板实参,这里是一个一元右折叠,使用了 **`&&`** 运算符,也就是必须 std::is_same_v 全部为 true,才会是 true。简单的说就是要求类型形参包 Args 中的每一个类型全部都是一样的,不然就是替换失败。