Avsnitt

Proxy: Nästa generations polymorfism

med Mingxin Wang

Modern C++ kräver en omprövning av polymorfism som rör sig bortom begränsningarna i klassiskt arv samtidigt som prestanda och säkerhet bevaras. I det här samtalet kommer jag att presentera Proxy - ett C++20-bibliotek med öppen källkod för icke-påträngande polymorfism som utformats och förfinats av Microsoft. Proxy använder pekarbaserad livslängdshantering för att erbjuda en GC-liknande funktion utan att orsaka kostnader för en skräpinsamlare. Bibliotekets design är ett svar på långvariga utmaningar i traditionell polymorf kod. Det är ett alternativ till arv genom att tillåta alla uttryck, oavsett om det är medlemsfunktioner, kostnadsfria funktioner, operatorer eller konverteringar, att delta i en enhetlig abstraktion. Proxy har utvecklats med portabilitet, effektivitet och användarvänlighet i åtanke och är utformad som en fristående lösning som fungerar konsekvent mellan plattformar, från inbäddade system till operativsystem, där den har distribuerats i produktion sedan 2022.

Viktiga diskussionspunkter är:

  • Icke-påträngande abstraktion: Hur Proxy eliminerar behovet av arv, vilket gör polymorfa gränssnitt enklare men ändå kraftfulla
  • Livslängdshantering: Den innovativa metoden för att hantera objektlivslängder, som ger prestanda som är konkurrenskraftig med handgjorda lösningar samtidigt som vanliga fallgropar undviks
  • Flexibilitet och prestanda: Detaljerade överväganden för att balansera API-tillgänglighet och effektiv resurshantering i ett modernt C++-ekosystem
  • Real-World Effekt: Lärdomar från att använda Proxy i en storskalig produktionsmiljö och en jämförelse med alternativa polymorfa programmeringstekniker.

Följ med mig för en djupgående utforskning av Proxys designbeslut, praktiska tillämpningar och potentiella framtida riktningar som återskapar polymorfism för nästa generation av C++-utveckling.

Utvecklare
Uttryck
GitHub
C++

Har du feedback till oss? Skicka in ett problem här.