受保护的模块成员

cyb*_*vnm 5 d

根据D docs(http://www.digitalmars.com/d/2.0/attribute.html#ProtectionAttribute),受保护的模块成员是非法的,但编译器允许我这样做.

module foo;
protected
{
    int bar; 
}

这是文档中的错误,编译器错误还是我做错了什么?
实际上这不是文档和现实之间唯一的不一致,所以这个参考(http://www.digitalmars.com/d/2.0)是实际的吗?是否存在更多实际的语言描述?
我的配置:dmd 2.047,OS Windows 7,x86

tor*_*rhu 4

编译器允许在没有任何效果的地方使用属性。这是不幸的,因为它令人困惑。希望它们最终会被禁止,就像其中一些人已经被禁止的那样。

在线文档不完整。如果您认真学习 D,您可能需要购买 Andrei Alexandrescu 所著的《The D 编程语言》一书。它是在一个月前发布的。它涵盖了在线文档没有涵盖的一些内容。反之亦然。

您可以通过搜索D 新闻组档案、或者在新闻组中提问、搜索 digitalmars 站点、D wiki等找到很多答案。不过,文档本身可能多年不会更新。