我正在使用最新版本的 MSVC、clang 和 gcc。最后两个接受以下代码,但 MSVC 拒绝它。MSVC 对吗?或者它是一个错误?
struct A {
int a, b, c;
};
template <typename T> constexpr auto construct_impl() {
return [](auto &&... xs) -> decltype(T{xs...}) { return T{xs...}; };
}
int main() {
auto a = construct_impl<A>()(0, 1, 2);
return 0;
}