gpt4 book ai didi

c++ - 自动化 C++ 类的 pimpl'ing——有简单的方法吗?

转载 作者:可可西里 更新时间:2023-11-01 15:22:13 25 4
gpt4 key购买 nike

Pimpl 是许多 C++ 代码中样板的来源。它们似乎是宏、模板和一些外部工具的组合可以帮助解决的问题,但我不确定最简单的方法是什么。 I've seen templates这有助于完成一些提升,但作用不大——您最终仍然需要为您尝试包装的类的每个方法编写转发函数。有没有更简单的方法?

我正在想象一个工具用作制作过程的一部分。你希望你的公共(public)头文件是 pimpl'd 类,所以你提供一些输入文件,比如 pimpl.in,它列出了你想要包装的类(实现的非 pimpl'd),然后检查该文件,生成 pimpl 类,并且在“make install”期间仅安装它们的 header (不是原始类的 header )。问题是,如果没有完整的 C++ 解析器,我看不出有什么方法可以做到这一点,即使是编译器供应商也无法做到这一点。也许可以以某种方式编写类,使外部工具的工作更容易,但我确信我最终会遗漏各种极端情况(例如模板化类和/或模板化成员函数)。

有什么想法吗?有没有其他人已经为这个问题提出了解决方案?

最佳答案

不,没有一个简单的答案。 :-( 我认为几乎每个 OO 专家都说“更喜欢组合而不是继承”,因此会有语言支持使组合比继承容易得多。

关于c++ - 自动化 C++ 类的 pimpl'ing——有简单的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1621446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com