对于以下代码:
struct S
{
S() = default;
S(S const&) = default;
S(S&&) = default;
S& operator=(S const& other) = default;
S& operator=(S&&) = default;
template <typename... T>
S(T&&... params)
{
}
};
int main()
{
S s;
return 0;
}
我收到一条错误消息:
错误 C2580 'S::S(void)':不允许使用多个版本的默认特殊成员函数
我不明白。我认为该错误是由模板化构造函数引起的(通过将其注释掉并编译程序来验证这一点)。