Welcome to our journey from a simple strcut to a working std::optional implementation. It is recommended to start with the about page, as there are all targets and assumptions layed out. These posts are consecutive, so it is recommended to start with the first post and to progress chronologically. But you may also skip one or another posts, if you are already familiar with the particular topic.
Posts
-
Off topics: a comment system
-
An inenarrable story about global constants
-
A null pointer for optional
-
Enter the void
-
More efficient algorithms with swap
-
An C++ 98 Optional: Part III - A better solution
-
An C++ 98 Optional: Part II - A simple hack
-
An C++ 98 Optional: Part I - Groundwork
-
Mutable Access
-
Efficient Comparisons
-
Wide contracts and narrow contracts
-
We always had an optional! (kind of...)
-
Copy assignment revisited
-
The return of assignment
-
The copy constructor strikes back
-
A new destructor
-
Enable non-default-constructable value types
-
Pass by Value vs. Pass by Reference
-
A templated optional
-
An immutable optional
-
A trivial Copy
-
Interlude: code formatting
-
Ordering Optionals
-
Equality and Inequality
-
A regular optional
-
An invariant for optional
-
Constructors for valid optionals
-
A basic cmake setup
-
What is optional?
subscribe via RSS