[Development] Improving toInt, toLong, etc.

Thiago Macieira thiago.macieira at intel.com
Wed Feb 5 18:44:39 CET 2014


Em qua 05 fev 2014, às 12:36:42, Matthew Woehlke escreveu:
> On 2014-02-05 12:19, Thiago Macieira wrote:
> > Em qua 05 fev 2014, às 10:37:27, Robert Knight escreveu:
> >>> The idea was to silently return a default-constructed type.
> >> 
> >> I'm not keen on that. Aside from adding extra restrictions to the
> >> types that the class can be used with as you mention,
> >> it runs the much more severe risk of masking serious bugs.
> > 
> > No way around it if we exclude exceptions.
> > 
> > We need to return something.
> 
> ...or you could abort, which I assume is what operator* does?

That doesn't help.

First, Q_ASSERT() is eliminated in a debug build, so we're left with no abort.

Second, even if we stick a real call to qFatal() there, we don't have the 
"noreturn" annotation in all compiles -- particularly, it's not there for MSVC 
because qFatal *can* return there. That means we still must return something.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Development mailing list