小编Ati*_*ion的帖子

x86上的竞争条件

有人可以解释这句话:

shared variables
x = 0, y = 0

Core 1       Core 2
x = 1;       y = 1;
r1 = y;      r2 = x;
Run Code Online (Sandbox Code Playgroud)

怎么可能有r1 == 0r2 == 0x86处理器?

来源"并发的语言"通过巴尔托什卢斯基.

c c++ x86 race-condition

24
推荐指数
1
解决办法
1796
查看次数

VS编译器可以访问私有拷贝ctor

可能重复:是否
可以抛出具有私有拷贝构造函数的对象?

据我所知,当你把对象作为值时,应该创建副本.因此,如果存在,则应调用复制构造函数.如果copy ctor存在并且是私有的,那么这应该导致编译错误.这是代码示例

class Exception {
public:
Exception() {
    cout << "Exception()" << endl;
}

~Exception() {
    cout << "~Exception() " << endl;
}
private:
Exception(const Exception &c) {
        cout << "Exception(c)" << endl;
    }
};
Run Code Online (Sandbox Code Playgroud)

下一个代码应该导致编译错误.

try {
        Exception local;

        throw local;
    } catch (...) {
    }
Run Code Online (Sandbox Code Playgroud)

但是VS 2005和VS 2008都成功地编译了代码并调用私有ctor.我错了,这是非标准行为,是编译器中的错误吗?

c++ visual-studio

7
推荐指数
1
解决办法
130
查看次数

标签 统计

c++ ×2

c ×1

race-condition ×1

visual-studio ×1

x86 ×1