29#include "neml2/base/OptionBase.h"
47void _print_helper(std::ostream & os,
const P *);
49void _print_helper(std::ostream & os,
const std::vector<P> *);
51void _print_helper(std::ostream & os,
const std::vector<std::vector<P>> *);
54void _print_helper(std::ostream & os,
const std::vector<bool> *);
57void _print_helper(std::ostream & os,
const char *);
60void _print_helper(std::ostream & os,
const unsigned char *);
81 const T &
get()
const {
return _value; }
86 T &
set() {
return _value; }
88 void print(std::ostream &)
const override;
90 std::unique_ptr<OptionBase>
clone()
const override;
102_print_helper(std::ostream & os,
const P * option)
109_print_helper(std::ostream & os,
const std::vector<P> * option)
111 for (
const auto & p : *option)
117_print_helper(std::ostream & os,
const std::vector<std::vector<P>> * option)
119 for (
const auto & pv : *option)
120 _print_helper(os, &pv);
const std::string & name() const
A readonly reference to the option's name.
Definition OptionBase.h:61
void print(std::ostream &) const override
Definition Option.cxx:75
T & set()
Definition Option.h:86
bool operator==(const OptionBase &other) const override
Test for option equality.
Definition Option.cxx:56
bool operator!=(const OptionBase &other) const override
Test for option inequality.
Definition Option.cxx:67
Option(const std::string &name)
Definition Option.cxx:39
std::unique_ptr< OptionBase > clone() const override
Definition Option.cxx:83
const T & get() const
Definition Option.h:81
Definition DiagnosticsInterface.cxx:30