首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >D编译时变量同构数组

D编译时变量同构数组
EN

Stack Overflow用户
提问于 2011-11-18 21:51:59
回答 1查看 129关注 0票数 2

D2.056

代码语言:javascript
代码运行次数:0
运行
复制
void f(string[] names...)
{
    foreach (name; names)
    {
        mixin("string " ~ name ~ " = name;");
    }
}

int main()
{
    f("a", "b");
    return 0;
}

为什么这不起作用?它抱怨'name‘不是编译时可读的,但这是一个错误的声明。'names‘的内容在编译时是已知的,因为它是{"a","b"};

我正在尝试绑定一个库,传递的函数名必须定义并指向该库。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-18 22:16:24

函数必须对编译和编译时执行都有效。显然,f是不可编译的。

根据您试图实现的目标,您可以将names作为模板参数(这将使foreach成为静态参数),或者让f构建一个字符串并在f的调用点混合结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8183470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档