[Development] QOptional

Allan Sandfeld Jensen kde at carewolf.com
Thu Aug 21 17:40:10 CEST 2014


On Thursday 21 August 2014, Marc Mutz wrote:
> On Thursday 21 August 2014 16:52:05 Thiago Macieira wrote:
> > But I'd like QOptional<QString> o = QString() result in a null
> > (disengaged)  QOptional too.
> 
> Too clever for a general optional class, IMO:
> 
>   QOptional<QString> qs = QString();
>   QOptional<std::string> ss = std::string();
> 
> qs will be disengaged and ss will be engaged. Hard to explain in the docs.
> Impossible to anticipate for new users of the class. Death row for template
> code.

It would need to use some kind of inherently optional type trait. It could be 
true for QString but also for all pointer types and std::string.

Btw, I would prefer if an optional<T> type did not have an implicit conversion 
to T. Like any wrapper like iterators or pointers, I think it would be better 
and safer to use a deference operator like operator* to access the content.

`Allan



More information about the Development mailing list