Home
Sandor Dargo's Blog
Cancel

C++23: two additional noexcept functions

If my math is correct, there are 125 changes / fixes / new features in C++23 and we are progressively covering them on this blog. I try to go from topic to topic. There are some topics with many sm...

C++23: Even more constexpr

Ever since C++ introduced the constexpr keyword in C++11, each new standard brought us more and more opportunities to make our code increasingly constexpr, in other words, compile-time execution fr...

Are we - developers - spoiled or abused?

I think we are lucky as software developers. Most of us like what we do and we get a good salary. Even if a lot of people do not like the company they work for, in general, they like software devel...

Is this dynamic_cast needed?

I have already written a couple of times about dynamic_cast. I claimed that if you can avoid using it and RTTI, you can get a smaller binary. I also claimed that without dynamic_cast your code will...

Variadic functions vs variadic templates

A few months ago, I wrote a review on Template Metaprogramming with C++ by Marius Bancila where I mentioned not only that it’s a great book, but also that there are some topics which I’ll cover mo...

Without RTTI your code will be cleaner

Recently, in the binary sizes series, we discussed how run-time type information affects RTTI. I also mentioned that in my opinion the lack of RTTI leads to better practices and you’ll end up with ...

We are always late

I recently read a post on social media about modern people who are always chasing themselves as they are always late. It also reminded me of what one of my first bosses told me. According to the me...

Vectors and unique pointers

In this post, I want to share some struggles I had twice during the last few months. For one of my examples, I wanted to initialize a std::vector with std::unique_ptr. It didn’t compile and I had l...

Binary sizes and passing functions to functions

So why templates are interesting for our series on binary sizes? It’s because as mentioned, they do not represent callable code. They represent templates to generate callable code. The more you gen...

Binary size and exceptions

In this series of articles about binary sizes, we already talked about the default keyword and said that the default keyword will make a special function noexcept, whenever it can. What is noexcep...