A leaf that holds a value. More...
#include "IOption.hpp"
Public Types | |
using | Name = NameT< nam > |
using | Node = NodeT< Nodes::value > |
Public Member Functions | |
virtual UsageLevel | usageLevel () const =0 |
Frequency / expected skills of users that access this leaf. | |
virtual ValueSource | valueSource () const =0 |
The context in which the value has been set. | |
virtual bool | empty () const =0 |
If its value has not been set, a leaf is considered empty. More... | |
virtual | operator bool () const =0 |
Returns !empty() | |
virtual const T & | get () const =0 |
Get the value. | |
virtual T | getOr (T &&default_) const =0 |
Get the value or default_ if empty. | |
virtual const T & | getOr (const T &default_) const =0 |
Public Member Functions inherited from IBase | |
virtual Names | enumerator () const =0 |
The option name as enumerator. | |
virtual String | name () const =0 |
The option name as string. | |
virtual String | path () const =0 |
The option name as string, preceded by the names of its parents, if any, interspersed with '.'. | |
virtual String | shortDescription () const =0 |
One-liner that describes this option. | |
virtual String | longDescription () const =0 |
Longer text that describes this option in more detail. | |
virtual UsageLevel | minUsageLevel () const =0 |
For a leaf, this is its own usage level. Otherwise, this is the minimum usage level of all descendants: basic < mid < pro. | |
virtual Nodes | node () const =0 |
The node type of this option. | |
A leaf that holds a value.
nam | The value name. |
cnst | If true, then the value may not be changed. |
T | The value type. |
|
pure virtual |
If its value has not been set, a leaf is considered empty.
Accessing its value then raises an exception.