d关联数组的opApply

原文

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呢?

posted @ 2022-02-27 15:57  zjh6  阅读(15)  评论(0)    收藏  举报  来源