[Development] char8_t summary?

Thiago Macieira thiago.macieira at intel.com
Tue Jul 16 21:15:26 CEST 2019


On Tuesday, 16 July 2019 09:11:37 PDT Matthew Woehlke wrote:
> On 15/07/2019 18.19, Thiago Macieira wrote:
> > On Monday, 15 July 2019 09:41:24 PDT Matthew Woehlke wrote:
> >> Note also that I suggested having the template definition out-of-line;
> >> it doesn't need to be in (e.g.) qstring.h or anywhere that will affect
> >> *user* compile times. Only the TU responsible for instantiating them
> >> would be affected, and that should be negligible in the grand scheme of
> >> things.
> > 
> > Then it's no different than an overload, if the implementation isn't the
> > same (and it isn't).
> 
> ...but a template allows the common portions to be written in a single
> definition with overloads *and/or* `if constexpr` used where the code
> needs to differ. Regular overloads would require 100% of the definition
> to be duplicated for each overload.

And what Marc and I are arguing is that the common portions are small enough 
not to be worth the hassle of a template in the first place.

> Concrete example:
> 
>   // .h
>   bool contains(QStringView);
>   bool contains(QLatin1StringView);
[cut]

Two things:
1) templatisation of contains, indexOf, startsWith, etc. is already being done 
in dev

2) the work being done *and* your example are UTF-16 and Latin1 only. The 
whole issue here is that *UTF-8* will not share enough code.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products






More information about the Development mailing list