Open
Description
- Apply "SCARY iterator"-like refactorization of class templates to minimize the number and complexity of class template arguments.
- No local classes in function templates. That includes lambdas.
- Bring down mangled name length to speed up debug builds.
- Investigate where complicated function template return types are being computed unnecessarily. See https://godbolt.org/z/Mqhj7voxq for an example. See cwg2369 for the core issue.
- Use Templight to get a compile-time flame graph and prune expensive template instantiations.
- Replace internal use of heavyweight types (
std::tuple
,std::optional
,std::variant
) with more lean custom types. Seemanual_lifetime
andmanual_lifetime_union
in libunifex. See my prototype lambda-based tuple implementation in this gist.