C ++是否提供类似于Ada的subtype类型来缩小类型?
例如:
type Weekday is (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);
subtype Working_Day is Weekday range Monday .. Friday;
Run Code Online (Sandbox Code Playgroud) 我发现了一个竞争条件的例子,我可以g++在 Linux 下重现它。我不明白的是,在此示例中操作顺序有何影响。
int va = 0;
void fa() {
for (int i = 0; i < 10000; ++i)
++va;
}
void fb() {
for (int i = 0; i < 10000; ++i)
--va;
}
int main() {
std::thread a(fa);
std::thread b(fb);
a.join();
b.join();
std::cout << va;
}
Run Code Online (Sandbox Code Playgroud)
我可以理解,如果我使用过,则顺序很重要,va = va + 1;因为 RHSva可能会在返回指定的 LHS 之前发生更改va。有人可以澄清一下吗?