adapting c++20 ranges algorithms for most metaprogramming
💡
原文中文,约1900字,阅读约需5分钟。
📝
内容提要
在cppnow 2023的演讲中,daisy展示了简化模板元算法的技巧。她以排序为例,通过将type_list中的每个Type映射到它们的index,然后对index数组进行排序,最终重新安放type_list中的元素。她展示了一个巧妙的排序算法,使用variant数组和std::visit访问数组中的元素。通过使用std::type_identity作为仿函数参数,解决了一些类型无法作为参数的问题。最后,她展示了如何根据类型的大小对type_list中的类型进行排序。
🎯
关键要点
- daisy在cppnow 2023的演讲中展示了简化模板元算法的技巧。
- 以排序为例,将type_list中的每个Type映射到它们的index,然后对index数组进行排序。
- 最终根据排序后的index重新安放type_list中的元素,返回结果type_list。
- 使用variant数组和std::visit访问type_list中的元素,展示了一个巧妙的排序算法。
- 排序算法的比较器使用了std::variant和std::type_identity,解决了某些类型无法作为参数的问题。
- main函数展示了如何根据类型的大小对type_list中的类型进行排序。
➡️