Explore >> Select a destination


You are here

ibob.bg
| | eyakubovich.github.io
6.0 parsecs away

Travel
| | Suppose we need to write a factory function that constructs a runtime polymorphic object. For the purposes of this post, let's say we want to construct a concrete shape object - a rectangle, triangle, or an ellipse. Here are our basic declarations: 1 2 3 4 5 6 7 8...
| | brevzin.github.io
7.2 parsecs away

Travel
| | C++17 gave us std::optional which is, in the words of a friend of mine, one of those really simple, ultra complex types - in the sense that it's very easy to understand and use properly, even for relatively inexperienced programmers... but extremely difficult to implement correctly, even for experts (another such is std::pair). Today, it's well over a thousand lines of code, most of which is critical to support even its most basic functionality. optional is the simplest sum type, and it appears in lots of different languages (and even has special syntax in Swift) under various related names - Maybe, Option, etc. - but in the languages I'm even nominally familiar with, it's about as simple to implement as it is to use.
| | akrzemi1.wordpress.com
3.2 parsecs away

Travel
| | This post has been inspired by the readers' questions about using concepts to solve real problems. We will have a look at two such problems and see if, and how, concepts can help. Case Study 1 My concept has two functions: one produces a value, and the other one later consumes this value: How to...
| | www.foonathan.net
24.5 parsecs away

Travel
| The size of std::array is known at compile-time given the type. Yet it only provides a regular .size() member function: template struct array { constexpr std::size_t size() const { return N; } }; This is annoying if you're writing generic code that expects some sort of compile-time sized range.