27template<
typename Input = RuneSequence,
typename Output = Input>
35 : name_(
std::move(
name)), desc_(
std::move(desc)) {}
41 std::string
name()
const override {
return name_; }
Base interface for all spell algorithms with C++20 enhancements.
output_type operator()(const input_type &input) const override
virtual output_type process(const input_type &input) const =0
std::string name() const override
Get the spell's name.
spell_extensible(std::string name, std::string desc)
std::string description() const override
Get the spell's description.