C++ how future::wait_until(time) handles multiple clocks?
std::future::wait_until(time) converts time to a standard clock, and thus implicitly assumes that all clocks run at the same pace.
std::future::wait_until(time) converts time to a standard clock, and thus implicitly assumes that all clocks run at the same pace.
Standard C++ is still lacking standardized future continuation. Boost has “experimental” implementation that is 11 years old. In the meantime, at least three major proposals were brought before the standard committee, but none made it into the standard. Current proposal is 190 printed pages long. The earliest it can become standard is C++26, and even that is not guaranteed. Such glacial speed of change results in a lot of confusion and feature lag behind other languages. C# had continuations since 2010, and JavaScript since 2015 (EC6). While C++ 11 was relatively on par with the industry when introducing futures, current C++ is quite behind the crowd. “Experimental” code should not stick around for over a decade in any library, and especially in a semi-standard library like Boost. There must be a way to solve problems faster.
C++ syntax is notoriously complex and full of gotchas both for compilers and for humans. I don’t know what was the reasoning in selecting the syntax for template deduction guides […]
TL;DR Don’t mix set -e and && operators in bash, it’s not going to work well. What is ‘set -e’ Bash command set -e stops the script when any of […]
Fold expressions, starting with C++ 17, provide succinct, if somewhat unorthodox, syntax for processing of parameter packs. Printing a pack to standard output Suppose, I want to write a function […]
std::optional and std::variant are attractive alternatives to raw pointers and unions, but they come with a caveat: when you create an optional/variant from a “real” value, a copy will be […]
Conan is a package manager for C++. It has a concept of profiles where different settings are specified, including OS, compiler and compiler version. [settings] os=linux compiler=clang version=16 I was […]
In Python, async for uses asynchronous generator to iterate over values. But how is it different from a regular for that uses a generator that yields awaitables? TL;DR: not much, […]
There is a rumor C++ 23 introduces method string::contains that checks whether a string contains a substring. I guess in mere 10-20 years we will have string::toupper and string::tolower. Here’s […]
TL;DR std::function works great when we know exact types of the arguments and the return value. It breaks down miserably in presence of templates, and the error messages are not […]