C++ 03 Added in Boost 1.30.0
Categories: Data

A value-semantic, type-safe wrapper for representing 'optional' (or 'nullable') objects of a given type. An optional object may or may not contain a value of the underlying type.


Fernando Cacciola
Andrzej Krzemienski


A library for representing optional (nullable) objects in C++.

optional<int> readInt(); // this function may return either an int or a not-an-int

if (optional<int> oi = readInt()) // did I get a real int
  cout << "my int is: " << *oi;   // use my int
  cout << "I have no int";

For more information refer to the documentation provided with this library.