Kategori: C++20
Här finner du alla artiklar märkta med kategorin C++20, vilka det finns 6 av.
Asynkron filläsning med C++20 coroutines
C++20-coroutines är kraftfulla – men C++ lämnar ovanligt mycket av “runtime-bitarna” åt dig. I den här artikeln bygger vi ett minimalt, begripligt exempel på asynkron filinläsning med `co_await`, och jämför med motsvarande lösning i Node.js. Du får en konkret mental modell för `awaitable`/`promise_type` och ser exakt när exekveringen hoppar mellan trådar. Resultatet är en praktisk startpunkt du kan återanvända i egna projekt.
Jens Riboe
1 jan. 2026
48 minuter i lästid
Vad är coroutines i C++
En praktisk introduktion till C++20-coroutines: hur promise_type, std::coroutine_handle och awaiters samverkar, samt fyra vanliga mönster – task, producer, generator och iterator – med fullt körbara exempel.
Jens Riboe
25 dec. 2025
50 minuter i lästid
Coroutine generator i C++23
Med C++23 introducerades std::generator som kraftigt förenklar skapandet av generatorer baserade på coroutines. I denna artikel tittar vi på hur std::generator kan användas för att implementera en word-iterator som räknar ord i en textfil, och jämför detta med tidigare lösningar baserade på ranges och views.
Jens Riboe
18 dec. 2025
30 minuter i lästid
Optimering av Word-Count programmet
I denna artikel utgår jag från ett word-count-program skrivet med C++20/23 ranges och views och optimerar det steg för steg. Vi går från en tydlig men långsam baseline till en betydligt snabbare lösning genom kompilatorflaggor, förallokering, optimerade teckenfunktioner och en minnesmappad indata-fil, och använder Google Benchmark för att jämföra de olika versionerna.
Jens Riboe
10 dec. 2025
49 minuter i lästid
Räkna ord med ranges och views
Bygg ett komplett C++20/23-program som läser Shakespeares samlade verk, räknar ordfrekvenser och visualiserar resultatet som ett interaktivt ordmoln i HTML. Längs vägen utforskar vi ranges, views, egna iteratorer och hur man komponerar en tydlig pipeline för textbearbetning. Vi tittar också på prestanda och jämför en specialiserad lösning med mer “naiva” alternativ som std::istream_iterator, för att se vad som faktiskt gör skillnad i praktiken.
Jens Riboe
2 dec. 2025
33 minuter i lästid
Iteratorer och STL Ranges
Tänk om STL-algoritmer kunde läsas som en shell-pipeline, i stället för skicka med first/last iterator-par i en serie av algoritm-funktionsanrop. I denna artikel visar jag med en egen-utvecklad enkel-länkad lista som utgångspunkt, hur du kan använda C++20/23 ranges/views för att skicka hela containrar, kedja transformationer, avbryta iterationer med sentinels, och projicera ut delar av objekt. Slutresultatet är både mindre mängd och tydligare programkod.
Jens Riboe
30 nov. 2025
11 minuter i lästid