使用“memberspace”习语?

2024-01-07

今天我了解了 C++“成员空间”习惯用法,它粗略地滥用了 C++ 的一个属性,该属性使得T::barT.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(使用前将#替换为@)

使用“memberspace”习语? 的相关文章

随机推荐

  • 如何使用 Selenium 和 Python 在信用卡号字段中输入日期?

    我正在尝试制作一个脚本来自动在 Shopify 网站上结帐 当我尝试填写要求信用卡的字段时 硒不允许我将密钥发送到该字段中 并表示该元素不可交互 我已经尝试单击它 但它仍然不允许我输入信息 有人知道该怎么办吗 driver find ele
  • Gradle 与编译器

    据我了解 Gradle 是 Android Studio 的包生成器 它在构建时整理与项目相关的资源 源代码和配置文件 但它也会编译代码吗 或者它将资源和依赖项转换为某种形式的可编译代码 然后将其发送给编译器 从我一直在做的所有阅读来看 这
  • 如何在 Xamarin Android 中使用 ActivityResultContract?

    我试图在 Xamarin 中使用 AndroidX 的 ActivityResultContract 但找不到任何相关文档或信息 我已经在本机android中实现了ActivityResultLauncher ActivityResultC
  • 强制 xml 返回某些 Web api 控制器,同时保持默认 JSON

    我们正在做一些 azure 商店集成 其资源提供程序代码要求我们使用 xml 作为返回格式化程序 然而 我们只想将 XML 与 Azure 内容一起使用 而保留默认的 JSON 格式化程序 那么 有谁知道如何强制特定控制器 方法的 Web
  • 优先队列应用程序

    优先级队列数据结构的计算机应用有哪些 我想了解使用优先级队列的计算机进程或计算机应用程序 我知道一个这样的应用程序 我们可以在打印机缓冲区中使用优先级队列 例如 假设有 3 个优先级 用户在发出打印命令之前需要指定他 她的优先级 因此 缓冲
  • SQL Server:“找不到数据库引擎启动句柄”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 尝试从以下位置安装 SQL Server Express 2016 时 here https dev mysql com download
  • Railsbrakeman命令sql注入

    从参数构造 order 方法时 如何避免 Rails 中出现刹车警告 def index methods name manager deadline assignments Assignment order sort column meth
  • 如何使用 Selenium IDE 测试 jQuery UI 滑块小部件?

    我们正在使用jQuery UI 滑块小部件 http jqueryui com demos slider 在我们的 Web 应用程序中 我们希望使用以下命令自动测试 UI硒集成开发环境 http seleniumhq org project
  • std::min 的参数顺序会更改浮点的编译器输出

    我在编译器资源管理器中摆弄 发现传递给 std min 的参数顺序更改了发出的程序集 这是 Godbolt Compiler Explorer 上的示例 https godbolt org g g g h codeEditor i font
  • sbt和antlr,有简单的例子吗?

    有没有人有如何设置 sbt 来构建 ANTLR 文件 到 scala 然后编译生成的代码的示例 我的文件布局 src main scala Test scala scala test rig src main scala Test g an
  • 未定义功能传感

    我正在尝试使用 GCC 编译器执行此操作 这可能吗 指定一个函数 但该函数如果未实现则指向 NULL 例子 extern void something uint some 如果未实现 则指向 NULL 值 所以可以这样检查 somethin
  • `plot.lm()` 生成的“残差与杠杆”图中的红色实线是什么?

    fit lt lm dist speed cars plot fit which 5 绘图中间的红实线是什么意思 我认为这与库克的距离无关 它是 LOESS 回归线 其中span 2 3 and degree 2 通过针对杠杆平滑标准化残差
  • union 可以模板化吗?

    似乎联合可以在 c 11 中模板化 它们用于例如std Optional 的参考实现 https github com akrzemi1 Optional blob master optional hpp 在 c 11 之前这可能吗 是的
  • 在打字稿中键入具有最大属性数量的动态键

    我想知道是否可以在打字稿中键入对象中动态属性的最大数量 所以基本的例子是跟踪事件 events track SOME EVENT first a other b some c 事件数据应该最多保存 3 个属性及其各自的值 键也可以是动态的
  • 为什么Java虚拟机中没有GIL?为什么 Python 这么需要一个?

    我希望有人能够提供一些关于 Java 虚拟机的根本不同之处的见解 它允许它很好地实现线程 而不需要全局解释器锁 GIL 而 Python 则需要这样的邪恶 Python 语言 不需要 GIL 这就是为什么它可以在 JVM Jython 和
  • 修复 ORA-02273:此唯一/主键被某些外键引用

    尝试删除唯一约束我遇到了这样的错误 ORA 02273 this unique primary key is referenced by some foreign keys 如何查找引用我的唯一约束的外键列表 select from all
  • Objective-C 在函数中返回分配的内存 == 不好?

    这是在 iPhone 上 那么如果我有一个像这样的函数呢 SomeObject buildObject 我是否需要传递一个已经在外部分配的变量 例如 void assignObject SomeObject out 或者我可以做 SomeO
  • 如何在gii中使用自定义模板(使用Yii 2)

    我正在尝试找到一种方法来使用 Yii 2 的自定义 Gii 模板 但是看看文档中缺少文档 http stuff cebe cc yii2docs guide gii html creating your own templates 我想这还
  • Java Swing——通过弹出 JFrame 请求用户输入(并创建阻塞线程)

    我的顶级容器是MainFrame JFrame 我希望能够弹出另一个带有 JPanel 的 JFrame 该 JPanel 有两个 JTextFieldsMainFrame 问题是 我需要能够从 Swing GUI 中阻止 EDT 这让人想
  • 使用“memberspace”习语?

    今天我了解了 C 成员空间 习惯用法 它粗略地滥用了 C 的一个属性 该属性使得T bar也T bar工作 当T在某个范围内既是类型又是对象 struct A struct Controls put some typedefs data f