IContainer< nam, Opts > Struct Template Referenceabstract

A container of options. More...

#include "IOption.hpp"

+ Inheritance diagram for IContainer< nam, Opts >:

Public Types

using Name = NameT< nam >
 
using Element = IGroup< nam, Opts... >
 
using Feed = ifeed::Type< Element >
 

Public Member Functions

virtual size_t size () const =0
 The number of actual elements.
 
virtual bool empty () const =0
 Returns size() == 0.
 
Access an actual element.
virtual const Elementoperator[] (size_t idx) const =0
 
virtual Elementoperator[] (size_t idx)=0
 
Access the default element.

Changes to it are also applied immediately to all actual elements.

virtual const Elementall () const =0
 
virtual Elementall ()=0
 
Access the feed element.

Values set on it are distributed over the actual elements and thereby define their number.

virtual const Feed & feed () const =0
 
virtual Feed & feed ()=0
 
iterator traversal
Iterator< IContainerbegin ()
 
Iterator< const IContainerbegin () const
 
Iterator< IContainerend ()
 
Iterator< const IContainerend () const
 
- 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.
 

Detailed Description

template<Names nam, class... Opts>
struct opals::opts::IContainer< nam, Opts >

A container of options.

Template Parameters
namThe name of the container and its elements.
OptsThe sequence of options that composes each element. Provides access to specific elements by index, to the default-element, and to the feed-element.