rem: virtual std::string name(void) const { return(source == 0 ? "" : source->name()); }
add: virtual std::string name(void) const { return(source == 0 ? string("") : source->name()); }
context:   virtual std::string name(void) const { return(source == 0 ? "" : source->name()); }