https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84667
--- Comment #9 from Elmar Stellnberger <estellnb at elstel dot org> --- I still do not understand why this constructor gets called: inline xstrbuf( base_str s ). If I use .as_const() the result should be an xstr_const : public xstr_abstract<const xchar,xchar> and not an xstr_mutable: public xstr_abstract<xchar,xchar>. Even if it ascended to xstr_abstract it would have to discard the const qualifyer.