microsoft / microsoft/cppwinrt
Feature request: add an all-in-one module interface file declaring `export winrt;` that `export import`s everything else
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.9k
- Forks
- 281
- PR merge metrics
- No merged PRs in 30d
Description
Summary
It is quite nice to see modules support massively improved for cppwinrt; this was a silent effort that went quite unnoticed by the rest of the community! Thanks to all.
That being said, I am a little concerned at the module being split up into 'namespaces'. The general consensus by build system and compiler developers is that libraries should tend towards mega-modules, as the parsing and instantiation cost is paid once upfront. I must also point out that some of the purported benefits listed here don't quite exist in C++. There is very little (amortised) cost to having a giant module interface file (this is exactly how module std works, for instance).
I therefore propose a small addition that allows users to consume cppwinrt in one go with an interface file that export imports all the separated interfaces.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with docs/modules-design.md and inspect the existing separated module interfaces to determine their names and export structure. Add an all-in-one interface that re-exports them, and verify that consumers can import winrt through that single interface.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100