In some programming languages, an option type is a polymorphic type (i.e., a type that holds a generic type) that represents an optional value. Either the containing variable will hold a “nothing” type, or it will hold “some” value.
For example, for an option
i32type, we could have eitherNoneorSome(10).
The point of this is clear. If we work with data where it may not have a value, we can set it as None instead of storing a ground truth illegal value (like nullptr) which may not be immediately obvious.
Option types are supported mainly in functional programming languages like Rust, Haskell, Scala, and OCaml. In addition, it’s now supported in starting in C++17.
- In Rust:
Some(<T>),None, as theOption<T>enum. - In C++:
std::optional<T>.