如何解决本地数组上 clear 的模板重载不明确?

How to solve ambiguous template overload of clear on local array?

目前正在尝试获取最新版本的facebook的flint进行编译。

D 编译器版本 2.081.1 的代码在与

类似的构造上失败
import std.stdio;
void main()
{
    long[] foo = [];
    foo.clear();
}

下面是示例的简短 link:https://run.dlang.io/is/ZSsPNS

与消息:

onlineapp.d(5): Error: template object.clear cannot deduce function 
from argument types !()(long[]), candidates are:
/dlang/dmd/linux/bin64/../../src/druntime/import/object.d(2855):        
object.clear(T : Value[Key], Value, Key)(T aa)
/dlang/dmd/linux/bin64/../../src/druntime/import/object.d(2860):        
object.clear(T : Value[Key], Value, Key)(T* aa)

如何解决这个歧义?

非常感谢任何帮助!

那里没有歧义 - clear 是一个对关联数组而不是动态数组进行操作的函数,long[] 是这样。

现在,这当然并不意味着代码有效。 :p

问题是 clear 在 2.066 中重命名为 destroy,并在 2.070 中删除。然后在2.071引入了current函数,清除AA的内容

所以,总而言之:将 clear 替换为 destroy,应该可以正常工作。