39 #ifndef DRAIN_CLASS_XML
40 #define DRAIN_CLASS_XML
47 #include "EnumFlags.h"
48 #include "ReferenceMap.h"
49 #include "TreeUnordered.h"
63 template <
typename ... TT>
70 template <
typename ... TT>
72 void add(
const std::string & arg,
const TT &... args) {
79 template <
typename ... TT>
81 void add(
const char *arg,
const TT &... args) {
82 add(std::string(arg), args...);
92 template <
typename E,
typename ...TT>
94 void add(
const E & arg,
const TT &... args) {
119 bool has(
const std::string & arg)
const {
120 return (find(arg) != end());
124 bool has(
const char *arg)
const {
125 return (find(arg) != end());
128 template <
typename E>
130 bool has(
const E & arg)
const {
136 void remove(
const std::string & arg) {
137 iterator it = find(arg);
156 std::ostream & operator<<(std::ostream &ostr,
const ClassListXML & cls){
Container for style classes. Essentially a set of strings, with space-separated output support.
Definition: ClassXML.h:59
void add(const std::string &arg, const TT &... args)
Add one or several classes.
Definition: ClassXML.h:72
void add(const E &arg, const TT &... args)
Add one or several classes.
Definition: ClassXML.h:94
static const SprinterLayout layout
Uses spaces as separators.
Definition: ClassXML.h:141
static std::ostream & sequenceToStream(std::ostream &ostr, const T &x, const SprinterLayout &layout)
Convenience: if sequence type (array, list, set, map) not given, assume array.
Definition: Sprinter.h:321
Definition: DataSelector.cpp:1277
Wrapper for unique (static) dictionary of enum values.
Definition: EnumFlags.h:66
Definition: Sprinter.h:137