C++中是否有"attribute"关键字?

phi*_*mue 6 c++ attributes

也许我错过了一些东西,但我想知道以下内容:

关于编码指南Mozilla开发人员页面中,我阅读了以下内容:

无论何时在没有任何上下文的情况下检索或设置单个值,都应使用属性.当您可以使用一个属性时,请勿使用两种方法.使用属性在逻辑上连接值的获取和设置,并使脚本代码看起来更清晰.

这个例子有太多方法:

 interface nsIFoo : nsISupports {
     long getLength();
     void setLength(in long length);
     long getColor(); 
 };
Run Code Online (Sandbox Code Playgroud)

下面的代码将生成完全相同的C++签名,但更适合脚本.

interface nsIFoo : nsISupports {
    attribute long length;
    readonly attribute long color; 
};
Run Code Online (Sandbox Code Playgroud)

我在想的是attribute long length.我假设这个语法通过aucomatically创建getter/setter方法.

  • 但是,标准C++是否以任何方式?
  • 这是一些mozilla特定的东西吗?
  • 这定义在哪里?

tem*_*def 12

Mozilla使用一种名为IDL(接口定义语言)的语言来定义多语言上下文中使用的对象的接口,例如C++和JavaScript.它汇编成这两种语言的代码,因此允许在项目上工作的开发人员可以在他们想要的语言中为他们的接口定义单一的定义.所以不,这不是标准的C++代码; 这是完全不同的东西.

在相关的说明中,interface和readonly也不是C++关键字.:-)


CB *_*ley 5

这个编码指南适用于IDL,而不是C++,所以不,attribute不是C++的一部分.该指南涉及IDL 生成的C++签名.