编辑:这个问题可以追溯到C++17之前。这些天std::launder或等效应添加到线路噪音。我现在没有时间更新代码以匹配。我渴望将接口(interface)与实现分开。这主要是为了保护使用库的代码免受所述库的实现发生变化的影响,尽管减少编译时间当然是受欢迎的。对此的标准解决方案是指向实现习惯用法的指针,最有可能通过使用unique_ptr并仔细定义类析构函数来实现。这不可避免地引发了对堆分配的担忧。我熟悉“让它工作,然后让它快速”,“配置然后优化”和这样的智慧。网上也有文章,例如gotw,它声明明显的解决方法是脆弱且不可移植的。我有一个库,它目前不包含任何堆分配-我想保持这种状态-所