0

这段代码在 gcc 8.1 和 clang 6.0 上编译良好,但在 MSVC(2017 和 2018 预发行版)上提供了 ICE:

#include <vector>
#include <string>

struct Data {
    unsigned char data;
};

struct A {
    std::string x;
    Data y{255};
};

void f(std::vector<A> arg) {
}

int main() {
    f(std::vector<A>{{"Test"}});
}

显然,我遇到了另一个 MSVC 编译器错误。

但要确定的是:上面的代码是否符合标准 C++,或者我也犯了错误?

4

0 回答 0