Safe C++ Partnership I am happy to announce that the C++ Alliance has formed a partnership with Sean Baxter, a renowned engineer, to develop the Safe C++ Extensions proposal. This is a revolutionary proposal that adds memory safety features to the C++ programming language. This collaboration marks a significant milestone in the C++ ecosystem, as the need for safe code has never been more pressing. With the increasing importance of software security and reliability, developers are facing mo...
MrDocs This quarter, my primary focus was on MrDocs. To that end, I’m happy to say that the P0 milestone for MrDocs has been reached! Although the vast majority of the work I did was bug hunting/fixing, I also implemented a novel feature which detects and simplifies types that use the SFINAE idiom. Prior to C++20, the primary mechanism for constraining templates was through use of the SFINAE idiom, e.g.: template<typename T> std::enable_if_t<std::is_pointer_v<T>, T> f(T);...
Speaking at C++Now At C++Now 2024, I gave my first full-length conference talk, titled “Unit testing an expression template library in C++20”. The slides are up at this link. As of the time of writing, the talk has not yet been uploaded to YouTube. In this talk, I explored the current state of compile-time unit testing in C++ in the well-known unit testing libraries. I also discussed my own methods for unit testing at compile-time. This talk especially focuses on giving helpful diagnostics ...
Summary MrDocs Boost Libraries Boost Release Tools Boost Website C++ Github Actions MrDocs MrDocs is a tool for generating reference documentation from C++ code and javadoc comments. I have been overseeing and reviewing all contributions to the project. Krystian has focused on metadata extraction and issues related to Clang. Fernando has been tackling usability, critical bugs, and essential features. I’m enhancing the CI setup and working on Antora extensions, which wil...
In the second quarter of 2024 implementing direct parsing for Boost.JSON has finally been completed. Direct serialisation will support all the same types as direct parsing, including recently-added std::path. After this addition, Boost.JSON’s set of conversion features is almost full. The only missing part is the ability to use a sort of temporary proxy type for conversion. E.g. converting from user type to std::string, then converting the string to JSON string. This is not strictly needed fo...