1 #ifndef fhiclcpp_types_Atom_h 2 #define fhiclcpp_types_Atom_h 24 class Atom final :
public detail::AtomBase,
25 private detail::RegisterIfTableMember {
37 explicit Atom(Name&&
name, Comment&&
comment, std::function<
bool()> useIf);
40 explicit Atom(Name&&
name, T
const& dflt_value);
44 std::function<
bool()> useIf,
106 template <
typename T>
109 std::function<
bool()> maybeUse,
121 template <
typename T>
125 template <
typename T>
130 template <
typename T>
134 std::stringstream oss;
136 using namespace detail::yes_defaults;
137 oss << maybe_quotes<T>(
value_);
139 using namespace detail::no_defaults;
140 oss << expected_types<T>();
145 template <
typename T>
auto const & operator()() const
std::string get_stringified_value() const override
AtomBase(Name const &name, Comment const &comment, par_style const vt, std::function< bool()> maybeUse)
#define NO_DELEGATED_PARAMETERS
static void end_of_ctor()
std::function< bool()> AlwaysUse()
std::string strip_first_containing_name(std::string const &key)
RegisterIfTableMember(ParameterBase *pb)
void do_set_value(fhicl::ParameterSet const &pset) override
T get(std::string const &key) const
#define NO_STD_CONTAINERS
std::string const & name() const
std::string const & key() const
raw::ChannelID_t value_type
#define NO_NESTED_TABLE_FRAGMENTS
std::optional< T > get_if_present(std::string const &key) const
std::string const & comment() const
#define NO_NESTED_FHICL_TYPES_IN_ATOM
raw::ChannelID_t default_type