`auto`-array是C++20中的有效函数参数吗?

请考虑这个示例 C++20 程序:

#include <vector>
#include <iostream>

auto make_vector( auto v[2] ) { return std::vector{v[0], v[1]}; }

int main()
{
    int x[2] = {1, 2};
    auto v = make_vector( x );
    std::cout << v[0] << ' ' << v[1] << 'n';
}

GCC 和 Clang 都接受它(https://gcc.godbolt.org/z/jKT7GjMK6)

然而,最新的带有/std:c++latest选项的Visual Studio 2019 16.10.3拒绝了它:

错误 C3318:“auto [2]”:数组不能有包含“auto”的元素类型

是 MSVC 的错误或限制,还是不需要此代码在 C++20 中工作?

以上是`auto`-array是C++20中的有效函数参数吗?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>