1 #ifndef fhiclcpp_types_OptionalAtom_h 2 #define fhiclcpp_types_OptionalAtom_h 24 class OptionalAtom final :
public detail::AtomBase,
25 private detail::RegisterIfTableMember {
39 std::function<
bool()> maybeUse);
102 std::function<
bool()> maybeUse)
112 template <
typename T>
116 std::stringstream oss;
118 using namespace detail::yes_defaults;
119 oss << maybe_quotes<T>(*value_);
121 using namespace detail::no_defaults;
122 oss << expected_types<T>();
127 template <
typename T>
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 get_stringified_value() const override
std::string strip_first_containing_name(std::string const &key)
RegisterIfTableMember(ParameterBase *pb)
#define NO_STD_CONTAINERS
std::string const & name() const
bool operator()(T &value) const
std::string const & key() const
#define NO_NESTED_TABLE_FRAGMENTS
std::optional< T > operator()() const
std::optional< T > get_if_present(std::string const &key) const
std::optional< T > value_
std::string const & comment() const
void do_set_value(fhicl::ParameterSet const &) override
#define NO_NESTED_FHICL_TYPES_IN_ATOM