MSVC拒绝在模板类中编译"auto"参数


#include <vector>
#include <iostream>
template<typename T>
struct A
{
A& operator/=(const auto&x) { return *this; }
};
int main()
{
A<int> a;
a /= 10;
}

它在gcc上编译得很好,而不是在MSVC上。这是微软风险投资公司的错误吗?如果我用template<typename U>替换auto,它对两个编译器都有效。

这是一个使用编译器资源管理器的好地方。

clang/LLVMv12和GCC12也不喜欢默认编译器选项。

Visual C++的最新版本可以编译它,但前提是启用/std:c++20

最新更新