所以我编写了这段代码并且在编译时感到很惊讶(我使用的是gcc版本5.1.0):
struct Mine
{
const int* ptr;
Mine(const int x)
: ptr([=]()
{
static const int n = x;
return &n;
}()
){}
};
Mine first = 12;
Mine second = 13;
我感到惊讶的原因是Mine
的每个声明都会创建一个新的“全局”变量。
所以这就是问题:
我应该被允许这样做吗?
答案 0 :(得分:4)
只有一个column 0
,所有n
都相等。
所以,没有。