[Qt-creator] Minimizing compile-time conditionals in Qt Creator

André Pönitz andre.poenitz at mathematik.tu-chemnitz.de
Tue Aug 28 20:17:09 CEST 2012


On Tue, Aug 28, 2012 at 12:52:30PM -0400, Stephen Chu wrote:
> On 8/28/12 8:50 AM, Christian Kandeler wrote:
> > On 28/08/12 14:19, ext Stephen Chu wrote:
> >> On 8/28/12 3:56 AM, Christian Kandeler wrote:
> >>>        QStringList rc(QLatin1String(".svn"));
> >>>        if (Utils::HostOsInfo::isWindowsHost())
> >>>            rc.push_back(QLatin1String("_svn"));
> >>>        return rc;
> >>
> >> Doesn't this generate dead code that will never be executed on platforms
> >> other than the intended one?
> >
> > Yes (with C++03 at least). And if you can provide an example where it
> > demonstrably matters, we can switch back to ifdefs for that particular
> > piece of code.
> 
> It's not just dead code. It's also the calling of the conditional 
> function and the testing of it. These are all runtime cost that can and 
> should be avoided.
> 
> Something like this in some frequently called function (string?) can 
> impact the performance negatively.


struct Foo
{
    bool stuff() const { return false; }
};

int main()
{
    Foo f;
    return f.stuff() ? 21 : 42;
}

happily translates to

main:
        movl    $42, %eax
        ret

with g++ -O2.

No danger for cycles and fluffy animals.

Andre'



More information about the Qt-creator mailing list