在C++17中,引入了类模板参数推导(Class Template Argument Deduction, CTAD),这是一个非常强大的功能,使得我们可以避免在实例化模板类时显式地写出模板参数类型。在本文中,我们将深入探讨CTAD的应用,并通过一个实际的例子来说明其工作原理。
什么是CTAD?
CTAD允许编译器从构造函数的参数中推断出模板参数。例如,对于std::array,如果你这样写:
std::array arr{1,2,3};编译器会自动推导出arr的类型为std::array<int, 3>。