void main () nothrow
{
int[int] map;
foreach (pair; map.byKeyValue) // OK
{
}
foreach (key, val; map)
// 错误: `_aaApply2`不是`nothrow`.
{
}
}
对有嵌套AA
类型实现toHash
,是易错的.toHash
不带无抛
.错误,不是不抛.
带上不抛
,必须按extern (D) size_t toHash() const nothrow @safe
来声明toHash()
,而不是const pure @trusted ulong()
.
这样:
extern (D) size_t toHash() const nothrow @safe
来声明toHash
呢?