【发布时间】:2021-10-02 03:38:16
【问题描述】:
C++17 标准引入了“模板推导指南”。我收集它们与此版本标准中引入的构造函数的新模板参数推导有关,但我还没有看到简单的常见问题解答式解释它们是什么以及它们的用途。
什么是 C++17 中的模板推导指南?
我们为什么(以及何时)需要它们?
如何声明它们?
【问题讨论】:
-
特别是,我很想知道 C++17 STL 是否实际提供了任何演绎指南(例如,对于 std::pair 或 std::tuple)。从 C++17 开始的“可推导”标准模板类型的完整列表是什么?
-
我很想知道是否有任何编译器支持这一点。我尝试了 gcc、clang 和 vc++。 rextester.com/DHPHC32332 没关系,我发现它只适用于 gc++ 8.1 C++17 和 2a g++ -std=c++17 -O2 -Wall -pedantic -pthread main.cpp && ./a.out
标签: c++ templates c++17 c++-faq template-argument-deduction