microsoft / microsoft/cppwinrt

Feature request: add an all-in-one module interface file declaring `export winrt;` that `export import`s everything else

Offen
#1,604 2 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C++
Sterne
1.9k
Forks
281
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit docs/modules-design.md und untersuche die vorhandenen getrennten Modulschnittstellen, um ihre Namen und Exportstruktur zu bestimmen. Füge eine All-in-one-Schnittstelle hinzu, die sie re-exportiert, und überprüfe, dass Consumer winrt über diese einzelne Schnittstelle importieren können.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
build-system
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
58/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.