C 中的类型擦除是指隐藏某个类的部分或全部类型信息的技术,类似于 Boost.Any。以下是各种类型擦除方法:
虚拟函数是一种经典技术,您可以在基于接口的类层次结构中抽象类的实现。许多 Boost 库(例如 Boost.Any 和 Boost.Shared_ptr)都采用这种方法来隐藏类型或释放机制。
另一种选择涉及使用函数指针使用模板化函数,同时将实际对象存储在 void* 指针中。 Boost.Function 利用这种技术来隐藏函子的真实类型。
例如,GMan 的方法利用模板来隐藏实际类型不诉诸虚函数或 void*操作。
shared_ptr
C 中的所有类型擦除技术都采用函数指针和 void* 指针,主要区别在于语义糖的提供。
以上是C 如何实现类型擦除:技术比较?的详细内容。更多信息请关注PHP中文网其他相关文章!