使用C++元编程库boost::hana实现类型映射
在C++的元编程中,有时候需要将类型映射到另一组类型或值上。这时候可以使用boost::hana::map来实现。其中,boost::hana::keys函数可以返回一个包含所有键的boost::hana::tuple对象,我们来看下面的示例:
#include <boost/hana/tuple.hpp>
#include <boost/hana/map.hpp>
#include <boost/hana/keys.hpp>
#include <string>
#include <iostream>
namespace hana = boost::hana;
int main() {
auto map = hana::make_map(
hana::make_pair("key1", 1),
hana::make_pair("key2", 2.0),
hana::make_pair("key3", std::string{"value3"})
);
auto keys = hana::keys(map);
std::cout << typeid(keys).name() << std::endl;
std::cout << keys[0_c] << std::endl