这里是TypeCombinator的eespace!本仓库用于记录一些有意思的C++实验代码,使用C++20、C++23、C++26等现代C++特性。
- Stateful Metaprogramming:使用C++20实现有状态元编程,源自Kris Jusiak的元编程库mp,摘取了其中的关键代码,即使用二分搜索优化编译时间。
- no_uqnieu_address:使用C++20的
[[no_unique_address]]
实现判断任意个类型是否有重复的功能,以及代替EBO、实现条件成员等基础功能。 - forward_like_tuple:C++23的
forward_like
包括了3种模型,分别为merge
、tuple
和language
,进入标准库的std::forward
使用的是适用于主要场景的merge
模型,对于tuple
的get
方法,需要使用tuple
模型,即forward_like_tuple
,提案P2445给的代码不直观也不现代,本仓库给了一个极简、易懂且现代的实现。