Variables 原子共享结构在D语言中的应用

Variables 原子共享结构在D语言中的应用,variables,struct,d,atomic,shared,Variables,Struct,D,Atomic,Shared,如何使单词大小的共享变量在D中成为原子 我目前正在查看core.atomic,但我没有看到任何名为类似atomic的包装器模板。该接口的设计方式与C++11 atomic不一样吗?不,它只有加载存储和CA可用,但您可以使用它构建自己的包装器 例如: shared int sharedInt=0; int getAndIncrement(); return atomicOp!("+=")(&sharedInt,1)-1; } 不,它只有加载存储和CA可用,但您可以使用它构建自己

如何使单词大小的
共享
变量在D中成为原子


我目前正在查看
core.atomic
,但我没有看到任何名为类似atomic的包装器模板。该接口的设计方式与C++11 atomic不一样吗?

不,它只有加载存储和CA可用,但您可以使用它构建自己的包装器

例如:

shared int sharedInt=0;

int getAndIncrement();
    return atomicOp!("+=")(&sharedInt,1)-1;
}

不,它只有加载存储和CA可用,但您可以使用它构建自己的包装器

例如:

shared int sharedInt=0;

int getAndIncrement();
    return atomicOp!("+=")(&sharedInt,1)-1;
}

int
不是字号,它有一个固定的大小<代码> SIEZIGT 是(假设目标系统使用字号指针)@α-yx-yx.yx*,但是它将对任何大小为1、2、4或8的类型工作(认为重载赋值或不使用相等)仅仅是为了避免可能的进一步混淆,因为问题作者是关于字大小的,而C++中的代码> INT/CUT>是字大小的,但在D中并非如此。在D中,
int
始终是32位/4字节有符号的。8字节的值不适合在D中,32位也不适合无符号。对64位值使用
long
/
ulong
。详细信息:
int
不是字号,它具有固定大小<代码> SIEZIGT 是(假设目标系统使用字号指针)@α-yx-yx.yx*,但是它将对任何大小为1、2、4或8的类型工作(认为重载赋值或不使用相等)仅仅是为了避免可能的进一步混淆,因为问题作者是关于字大小的,而C++中的代码> INT/CUT>是字大小的,但在D中并非如此。在D中,
int
始终是32位/4字节有符号的。8字节的值不适合在D中,32位也不适合无符号。对64位值使用
long
/
ulong
。细节: