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