Я работаю с последней версией MSV C, clang и g cc. Два последних принимают следующий код, но MSV C отклоняет его. Правильно ли MSV C? Или это ошибка?
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;
}