#include <SelectableItem.h>

Selection of an item among a fixed list of items.
The class is designed to have the list of items static, so the class can be used in a constexpr context. In particular, it can be used in a switch statement.
The helper macro @MAKE_SELECTABLE_ITEMS can be used to make the code more concise.
| Derived | The class derived from SelectableItem. The CRTP must be used. | 
| IdType | A type for the indices | 
| Protected Attributes | |
| id_type | m_selected_id {} | 
| Public Member Functions | |
| constexpr | SelectableItem ()=default | 
| constexpr | SelectableItem (const std::string_view key) | 
| std::string_view | key () const | 
| std::string_view | description () const | 
| operator std::string_view () const | |
| constexpr | operator id_type () const | 
| bool | operator== (const std::string_view key) | 
| bool | operator== (const SelectableItem &other) const | 
| bool | operator!= (const SelectableItem &other) const | 
| constexpr SelectableItem & | operator= (const std::string_view key) | 
| void | print (std::ostream &out) const final | 
| void | readFromStream (std::istream &stream) final | 
| Static Public Member Functions | |
| static constexpr std::size_t | numberOfItems () | 
| static constexpr const auto & | items () | 
| static const std::string & | allKeysAsString () | 
| static const std::string & | dataDescription () | 
| Protected Member Functions | |
| void | keyError (const std::string_view key) | 
| Static Protected Member Functions | |
| static constexpr id_type | findId (const std::string_view key) | 
| 
 | protected | 
| 
 | constexprdefault | 
| 
 | inlineconstexpr | 
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| 
 | inline | 
| 
 | inlinestaticconstexprprotected | 
| 
 | inlinestaticconstexpr | 
| 
 | inline | 
| 
 | inlineprotected | 
| 
 | inlinestaticconstexpr | 
| 
 | inlineconstexpr | 
| 
 | inlineexplicit | 
| 
 | inline | 
| 
 | inlineconstexpr | 
| 
 | inline | 
| 
 | inline | 
| 
 | inlinefinalvirtual | 
Reimplemented from sofa::helper::BaseSelectableItem.
| 
 | inlinefinalvirtual | 
Reimplemented from sofa::helper::BaseSelectableItem.