C++ 下一个版本的C++;将拥有微软';s的物业扩展?

C++ 下一个版本的C++;将拥有微软';s的物业扩展?,c++,C++,这个功能看起来很不错。这将是伟大的,因为你不再需要getters了。您可以公开成员变量;以后,如果你改变主意,你可以把它们变成财产 这是标准委员会考虑过的吗?这是他们可能会接受或拒绝的东西吗?这是否已经存在,我只是不知道它?,因为在标准兼容的C++中,使用一个仅库的方法(代理对象)已经是可能的,它不太可能看到语言的变化和新的关键字。与lambdas(例如)不同的是,这里可能的语法糖并不那么甜(不会对抽象的层次有太大的改变) 顺便说一句,将字段(无包装的成员变量)更改为属性始终是一个突破性的更改,

这个功能看起来很不错。这将是伟大的,因为你不再需要getters了。您可以公开成员变量;以后,如果你改变主意,你可以把它们变成财产


这是标准委员会考虑过的吗?这是他们可能会接受或拒绝的东西吗?这是否已经存在,我只是不知道它?

,因为在标准兼容的C++中,使用一个仅库的方法(代理对象)已经是可能的,它不太可能看到语言的变化和新的关键字。与lambdas(例如)不同的是,这里可能的语法糖并不那么甜(不会对抽象的层次有太大的改变)

顺便说一句,将字段(无包装的成员变量)更改为属性始终是一个突破性的更改,因为您可以形成字段的指针和引用,并直接读取/写入它们。对于属性,您需要一个包装器来确保使用getter和setter

微软扩展的原因是它不简单地提供C++代码中的属性(对读写器和SETER函数的读写)。它生成反射使用的.NET元数据或WinRT元数据(分别以C++/CLI和C++/CX格式)。标准C++没有反射或元数据。

也注意到C++开发人员往往不太使用代理对象模式,这表明委员会对“更干净”的语法糖也没有太大的需求。

< P>这是旧的。如果我没有弄错的话,Borland先用C++ Builder添加了90年代的信息。微软紧随其后,当时他们的竞争非常激烈。COM自动化是一个相当重要的动力

这有三个C++语言版本来炖,连同围绕它的争论,这将被认为是未来修订的可能性是关于ZILCH。


属性有其用途,但它们会造成相当大的实现困难。例如,通过引用传递属性是一个很难解决的问题。被调用者需要知道需要调用访问器,而不仅仅是取消对指针的引用,还需要知道getter或setter是否存在。唯一可行的解决方案是禁止它,在C++中不是很吸引人。当您开始支持默认属性时,会出现额外的问题,很难忽略,这会引入语法歧义

这不是C++标准体以外的任何人可以回答的。小伙子,我希望不是。@ McOnOx:许多投递的人都投票赞成重新开放。很明显,这是一个关于SO的话题。@millimoose:委员会每次会议的文件和提案都是公开的,所以这不仅仅是为了委员会中的人(还有一些SO用户也是成员),我可能在这里有点离谱,但我似乎记得Common Lisp有一些关于一流左值的概念。(“place forms”或其他类似内容。)编译这些内容的现有技术可能有助于解决这些困难,尽管我认为在Lisps中,支持这些边缘情况时会损失性能是可以接受的。通过引用获取代理对象也是一种实用的解决方案,只要您将其传递给通用算法(模板和能够接受代理对象)。这是C++的做事方式。这个答案也是非常好的,不幸的是,我只能把一个答案标记为正确: