为什么“类模板参数推导”不是一个简单的结构工作?(Why does “template argume

2019-09-28 22:02发布

C ++ 17支持template argument deduction for class templates

请参阅www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0091r3.html的详细背景资料。

但是,下面的代码不能按预期工作;

#include <utility>

template<typename T>
struct A
{
    T x;
};

int main()
{
    auto p = std::pair{ 1, 2 }; // ok, as expected.

    auto a = A{ 0 };
    //
    // error : no viable constructor or deduction guide
    // for deduction of template arguments of 'A'
    //
}

我的编译器铛5.0 -std=c++1z

为什么template argument deduction for class templates不是一个普通结构的工作?

文章来源: Why does “template argument deduction for class templates” not work on a plain struct?