这在C++中是有效的吗?
#include <iostream>
class Test {
struct Inner {
};
public:
using Inner = struct Inner; // Alias with same name as type
};
int main(int argc, const char * argv[]) {
static_assert(std::is_pod<Test::Inner>::value, "");
return 0;
}
使用Clang编译没有问题,但使用GCC / Visual C++会出现“Inner is private…”错误信息。
using x = y;
不是一个using-directive,而是一个using-declaration。 - HolyBlackCatusing std::swap;
);它是一个别名声明。 - L. F.