Sökresultat för

Blog

Artiklar & Nyheter

Här kan du läsa ett brett fält av artiklar, från tekniska artiklar med gott om källkod, via kåserier om tidigare eskapader, till rena kursnyheter och helghälsningar.

Asynkrona operationer med coroutines

Asynkrona operationer med coroutines

Bygg ett litet runtime-system för coroutines i C++: en scheduler som återupptar coroutines på main-thread och en thread-pool som utför fil-I/O. Vi läser textfiler radvis via co_await, kör flera coroutines samtidigt och diskuterar liveness/avslut utan att blockera huvudprogrammet.

Jens Riboe
Jens Riboe

21 jan. 2026

38 minuter i lästid

Asynkron filläsning med C++20 coroutines

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
Jens Riboe

1 jan. 2026

48 minuter i lästid

Gott Nytt År, 2025

Gott Nytt År, 2025

Vi önskar ett riktigt bra nytt år!

Jens Riboe
Jens Riboe

29 dec. 2025

1 minut i lästid

Vad är coroutines i C++

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
Jens Riboe

25 dec. 2025

50 minuter i lästid

God Jul

God Jul

God Jul önskar vi på Ribomation.

Jens Riboe
Jens Riboe

21 dec. 2025

1 minut i lästid

Coroutine generator i C++23

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
Jens Riboe

18 dec. 2025

30 minuter i lästid

Optimering av Word-Count programmet

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
Jens Riboe

10 dec. 2025

49 minuter i lästid

Räkna ord med ranges och views

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
Jens Riboe

2 dec. 2025

33 minuter i lästid

Iteratorer och STL Ranges

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
Jens Riboe

30 nov. 2025

11 minuter i lästid

Iteratorer och STL Algoritmer

Iteratorer och STL Algoritmer

Vad krävs för att egna iteratorer ska spela snyggt med C++ standardbibliotekets algoritmer? I den här artikeln går vi från input/output till bidirectional och random‑access, visar vanliga fallgropar, rättar dem – och avslutar med en konkret checklista. Perfekt för dig som bygger egna containrar eller vill förstå varför vissa algoritmer kräver vissa iterator‑egenskaper.

Jens Riboe
Jens Riboe

4 nov. 2025

20 minuter i lästid

Använder du smarta pekare i C++?

Använder du smarta pekare i C++?

Byt osäker manuell minneshantering mot moderna smarta pekare. Artikeln går från ett egenbyggt mini-exempel till tydliga tumregler för ägarskap kontra lån: unique_ptr som förstahandsval och shared_ptr när delat ägande verkligen behövs. Du får se hur make_unique/make_shared gör konstruktion ren och idiomatisk. Med konkreta, verklighetsnära kodexempel – inklusive polymorfa containers – blir principerna lätta att använda i din egen C++-kod.

Jens Riboe
Jens Riboe

29 sep. 2025

40 minuter i lästid

Tillämpar du Rule-of-Zero i C++?

Tillämpar du Rule-of-Zero i C++?

Hur mycket kan du egentligen om C++:s special members och deras regler? I den här artikeln går vi från Rule of Three till Rule of Five och vidare till den moderna Rule of Zero. Med konkreta exempel, vanliga fallgropar och ett realistiskt program visar jag varför Rule of Zero gör din kod både enklare, säkrare och mer robust.

Jens Riboe
Jens Riboe

26 sep. 2025

64 minuter i lästid

Från pekare till iteratorer i C++

Från pekare till iteratorer i C++

Har du någonsin funderat på hur C++ egentligen lyckas göra samma algoritmer användbara för helt olika containers? Hemligheten stavas iteratorer. I denna artikel tar vi steget från klassiska pekarintervall till egna iterator-klasser och utforskar de olika kategorierna. Följ med bakom kulisserna och upptäck hur grunden till STL:s algoritmer verkligen fungerar.

Jens Riboe
Jens Riboe

9 sep. 2025

41 minuter i lästid

valarray vs. vector – numeriska beräkningar

valarray vs. vector – numeriska beräkningar

De flesta C++-utvecklare är välbekanta med `std::vector`, som är en av de mest använda och mångsidiga containrarna i STL. Däremot är dess kusin `std::valarray` en betydligt mer obskyr medlem av standardbiblioteket – och används sällan i praktiken. I den här artikeln tittar vi närmare på likheter, skillnader och när `valarray` faktiskt kan vara ett vettigt val.

Jens Riboe
Jens Riboe

23 aug. 2025

15 minuter i lästid

Visste du att string kan användas som en vector

Visste du att string kan användas som en vector

std::vector och std::string kan vid första anblick verka som helt olika containrar. Men de delar många egenskaper – och string klassen erbjuder ibland fördelar, även för icke-textdata. I denna artikel går jag "utanför lådan" genom att påvisa hur du kan använda string klassen på ett fiffigare sätt än med vector klassen. Häng med och läs en kul och annorlunda artikel om C++.

Jens Riboe
Jens Riboe

19 aug. 2025

12 minuter i lästid