29得票2回答
`std::make_optional`的作用是什么?

所有的std::make_都被C++17引入类模板参数推导(除了make_unique和make_shared)所取代。那么std::make_optional有什么意义呢?据我所知,它与std::optional的类型推导指南完全相同。是否存在一种情况,std::make_optional比...

12得票1回答
如何为聚合模板的别名编写扣除指南?

使用C++20,可以为别名模板生成推导指南(请参见“别名模板的推导”一节,网址为:https://en.cppreference.com/w/cpp/language/class_template_argument_deduction)。然而,我无法将其与聚合初始化语法配合使用。在这种情况下,...

8得票1回答
标准库std::array的推断指南

在C++17和C++20的工作草案中,类模板std::array的推导指南被定义如下。 template<class T, class... U> array(T, U...) -> array<T, 1 + sizeof...(U)>; 例如,这个声明的结...

7得票1回答
扣除指南是否需要 noexcept 说明符?

出于某些原因,我一直认为推导指南必须具有与其所引用的构造函数相同的 noexcept 特性。例如: template<typename T> struct clazz { clazz(const T &) noexcept {} }; clazz(const c...