template class Poco::Optional

Overview

Optional is a simple wrapper class for value types that allows to introduce a specified/unspecified state to value objects. More…

#include <Optional.h>

template <typename C>
class Optional
{
public:
    // construction

    Optional();
    Optional(const C& value);
    Optional(const Optional& other);

    // methods

    Optional&
    assign(const C& value);

    Optional&
    assign(const Optional& other);

    Optional&
    operator=(const C& value);

    Optional&
    operator=(const Optional& other);

    void
    swap(Optional& other);

    const C&
    value() const;

    const C&
    value(const C& deflt) const;

    bool
    isSpecified() const;

    void
    clear();
};

Detailed Documentation

Optional is a simple wrapper class for value types that allows to introduce a specified/unspecified state to value objects.

An Optional can be default constructed. In this case, the Optional will have a Null value and isSpecified() will return false. Calling value() (without default value) on a Null object will throw a NullValueException.

An Optional can also be constructed from a value. It is possible to assign a value to an Optional, and to reset an Optional to contain a Null value by calling clear().

For use with Optional, the value type should support default construction.

Note that the Optional class is basically the same as Nullable. However, serializers may treat Nullable and Optional differently. An example is XML serialization based on XML Schema, where Optional would be used for an element with minOccurs == 0, whereas Nullable would be used on an element with nillable == true.

Construction

Optional()

Creates an empty Optional.

Optional(const C& value)

Creates a Optional with the given value.

Optional(const Optional& other)

Creates a Optional by copying another one.

Methods

Optional&
assign(const C& value)

Assigns a value to the Optional.

Optional&
assign(const Optional& other)

Assigns another Optional.

const C&
value() const

Returns the Optional ‘s value.

Throws a Poco::NullValueException if the value has not been specified.

const C&
value(const C& deflt) const

Returns the Optional ‘s value, or the given default value if the Optional ‘s value has not been specified.

bool
isSpecified() const

Returns true iff the Optional ‘s value has been specified.

void
clear()

Clears the Optional.