gpt4 book ai didi

c++ - D 中的语句宏

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:38 26 4
gpt4 key购买 nike

我正在将我用 C++ 编写的一些代码移植到 D。有一次我引入了一个方便的宏,其中包含一个赋值。喜欢

#define so_convenient(x) value = some_func(x,#x)

所以我用宏来

  1. 访问实际符号及其字符串

  2. 布置作业。

我如何在 D 中实现这一目标?

最佳答案

您可以使用mixin 语句在编译时将字符串转换为代码,例如:

mixin("value = 123;");

以下函数将生成一个字符串,其中包含最接近 C 宏的语句:

string soConvenient(alias A)()
{
return std.string.format(
'value = someFunc(%1$s, "%1$s");',
__traits(identifier, A));
}

然后你会像这样使用它:

mixin(soConvenient!x);       // equivalent to 'so_convenient(x) in C

关于c++ - D 中的语句宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22973822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com