Hello,

If Qt 5.7 are going to support only "proper" C++11 compilers, can new Qt code assume that function local static variable initialization is thread-safe?

Qt 5.7 Wiki page [1] makes me think that only Visual Studio 2013 and above are supported, is that right? If so, it appears that "magic statics" are implemented in 2013 RC [2] .

So, is it appropriate to write code like this:

// might be called in multiple threads
int Foo::bar() {
    static QAtomicInteger<unsigned int> count;
    return count.fetchAndAddRelaxed(1);
}

I am thinking maybe I could refactor small helper function qMakePreparedStmtId() [3] to use QAtomicInteger<unsigned int> instead of unsigned int and mutex.

Thanks.

[1] https://wiki.qt.io/Qt-5.7.0-tools-and-versions
[2] http://herbsutter.com/2013/09/09/visual-studio-2013-rc-is-now-available/
[3] 
http://code.qt.io/cgit/qt/qtbase.git/tree/src/sql/drivers/psql/qsql_psql.cpp?h=v5.5.1#n594

_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to