使用 boost::hana::any 实现多态行为
在 C++ 中,多态是一种常用的编程技巧,通过抽象类的虚函数实现。然而这种方式有时会导致代码难以维护,需要手动管理内存。boost::hana::any 是一个 header-only 的库,提供了一种更优雅、更安全的实现多态的方式。
任何类型都可以被包装为 boost::hana::any,但是调用其中的方法需要先检查是否存在。下面的代码示例展示了如何使用 boost::hana::any 包装不同的类型,并通过 SFINAE 技术检查是否存在 getName 方法:
#include <boost/hana.hpp>
using namespace boost::hana;
st