Skip to content

Improve compile times #542

Open
Open
@ericniebler

Description

@ericniebler
  • 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. See manual_lifetime and manual_lifetime_union in libunifex. See my prototype lambda-based tuple implementation in this gist.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2enhancementNew feature or requestgood-first-issueSomething to try if you're new to the project

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions