21#include <spot/misc/common.hh>
22#include <spot/misc/timer.hh>
43 print(std::ostream&,
const char*)
const = 0;
67 operator const T&()
const
90 val_ = std::move(new_val);
96 print(std::ostream& os,
const char*)
const override
108 print(std::ostream& os,
const char* x)
const override
120 print(std::ostream& os,
const char*)
const override
136 : has_(256), call_(256, &
id)
138 call_[
'%'] = call_[0] = &percent;
151 scan(
const char* fmt, std::vector<bool>& has)
const;
154 scan(
const std::string& fmt, std::vector<bool>& has)
const
156 scan(fmt.c_str(), has);
199 format(std::ostream& output,
const char* fmt)
201 std::ostream* tmp = output_;
212 return format(fmt.c_str());
217 format(std::ostream& output,
const std::string& fmt)
219 return format(output, fmt.c_str());
223 std::vector<bool> has_;
224 std::vector<const printable*> call_;
The default callback simply writes "%c".
Definition formater.hh:104
virtual void print(std::ostream &os, const char *x) const override
Print the requested escape code.
Definition formater.hh:108
Called by default for "%%" and "%\0".
Definition formater.hh:116
virtual void print(std::ostream &os, const char *) const override
Print a literal percent sign.
Definition formater.hh:120
A printable wrapper around a value of type T.
Definition formater.hh:50
T & val()
Access the stored value.
Definition formater.hh:61
const T & val() const
Access the stored value.
Definition formater.hh:55
virtual void print(std::ostream &os, const char *) const override
Print the stored value.
Definition formater.hh:96
T val_
Stored value.
Definition formater.hh:52
printable_value & operator=(T &&new_val)
Assign a new value.
Definition formater.hh:88
printable_value & operator=(const T &new_val)
Assign a new value.
Definition formater.hh:80
Abstract base class for objects that can be printed to a stream via a format string.
Definition formater.hh:35
virtual void print(std::ostream &, const char *) const =0
Print this object using fmt.
Definition automata.hh:26