剧集
代理:下一代多态性
替换为 Mingxin Wang
现代C++要求重新思考多态性,超越经典继承的约束,同时保持性能和安全性。 在此演讲中,我将介绍代理-一个仅开源标头C++20 库,用于由Microsoft设计和优化的非侵入性多态性库。 代理利用基于指针的生存期管理来提供类似 GC 的功能,而不会产生垃圾回收器的开销。 该库的设计是对传统多态代码中长期挑战的响应。 它通过允许任何表达式(可以是成员函数、自由函数、运算符或转换)参与统一抽象来提供继承的替代方法。 代理在设计时考虑到可移植性、效率和易用性,设计为一种独立解决方案,可在从嵌入式系统到作系统的平台之间一致地工作,自 2022 年以来一直部署在生产环境中。
讨论要点包括:
- 非侵入性抽象:代理如何消除继承需求,使多态接口更简单但功能强大
- 生存期管理:管理对象生存期的创新方法,它提供与手工制作的解决方案竞争的性能,同时避免常见的陷阱
- 灵活性和性能:在现代C++生态系统中平衡 API 辅助功能和高效资源处理的详细注意事项
- Real-World 影响:在大规模生产环境中使用代理学到的教训,以及与替代多态编程技术的比较。
请与我一起深入探讨代理的设计决策、实际应用和潜在的未来方向,为下一代C++开发重建多态性。
推荐的资源
相关剧集
现代C++要求重新思考多态性,超越经典继承的约束,同时保持性能和安全性。 在此演讲中,我将介绍代理-一个仅开源标头C++20 库,用于由Microsoft设计和优化的非侵入性多态性库。 代理利用基于指针的生存期管理来提供类似 GC 的功能,而不会产生垃圾回收器的开销。 该库的设计是对传统多态代码中长期挑战的响应。 它通过允许任何表达式(可以是成员函数、自由函数、运算符或转换)参与统一抽象来提供继承的替代方法。 代理在设计时考虑到可移植性、效率和易用性,设计为一种独立解决方案,可在从嵌入式系统到作系统的平台之间一致地工作,自 2022 年以来一直部署在生产环境中。
讨论要点包括:
- 非侵入性抽象:代理如何消除继承需求,使多态接口更简单但功能强大
- 生存期管理:管理对象生存期的创新方法,它提供与手工制作的解决方案竞争的性能,同时避免常见的陷阱
- 灵活性和性能:在现代C++生态系统中平衡 API 辅助功能和高效资源处理的详细注意事项
- Real-World 影响:在大规模生产环境中使用代理学到的教训,以及与替代多态编程技术的比较。
请与我一起深入探讨代理的设计决策、实际应用和潜在的未来方向,为下一代C++开发重建多态性。