microsoft / microsoft/cppwinrt

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

Aperta
#1,604 2 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
C++
Stelle
1.9k
Fork
281
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia da docs/modules-design.md e analizza le interfacce dei moduli separati esistenti per determinarne i nomi e la struttura di esportazione. Aggiungi un’interfaccia all-in-one che li riesporti e verifica che i consumer possano importare winrt tramite questa singola interfaccia.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp
Ambito
build-system
Tipo di issue
Funzionalità
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
58/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.