今天我了解了 C++“成员空间”习惯用法,它粗略地滥用了 C++ 的一个属性,该属性使得T::bar
也T.bar
工作,当T
在某个范围内既是类型又是对象。
struct A {
struct Controls {
/* put some typedefs/data/functions here */
} Controls;
};
// Can be used as a type and value
A a;
A::Controls::iterator it = a.Controls.begin();
你在实践中用过这个习语吗?你发现它有用吗?这个习语有哪些好的或最好的应用?
不,我从未使用过该技术(而且我认为它不值得被称为“习语”):
由于我没有使用过它,所以我觉得它没有什么用处。
该技术的一个很好的应用可能是让其他程序员感到困惑。
另一个应用程序可能是写一篇技术文章,讲述对于一些想象中从未在实践中遇到的问题有多么美妙,也许被大量模板元编程所混淆?
不知道,最好的应用可能是写一篇关于所有这些愚蠢规则的文章,就像你也可以有一个struct
我记得,在相同的范围内有一个同名的函数,并指出如何通过远离语言的黑暗角落来更好地完成这些可以完成的事情。 :-) 文章不需要花很多钱,但它们会表达尊重并且写起来很有趣。请写下来(TIA)。
干杯,
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)