qt5base-lts/tests/auto/corelib/tools
Lars Knoll 621c05e3b1 Don't allow storing types that throw in the destructor in our containers
Types that throw in their destructors are strongly discouraged in C++,
and even the STL doesn't define what happens if such types are stored
in their containers.

Make this more explicit for Qt and disallow storing those types in our
containers. This will hopefully preempty any potential future bug
reports about us not handling such a case. It also helps simplify
some code in QList and other cases and makes it possible to explicitly
mark more methods as noexcept.

Some care needs to be taken where to add the static asserts, so that
we don't disallow forward declarations of types stored in containers.
Place the static assert into the destructor of the container where
possible or otherwise into the templated d-pointer.

Change-Id: If3aa40888f668d0f1b6c6b3ad4862b169d31280e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-11-17 11:46:28 +01:00
..
collections Don't allow storing types that throw in the destructor in our containers 2020-11-17 11:46:28 +01:00
containerapisymmetry tst_containerapisymmetry: code tidies 2020-10-18 19:55:42 +02:00
qalgorithms Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
qarraydata Don't allow storing types that throw in the destructor in our containers 2020-11-17 11:46:28 +01:00
qbitarray CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qcache CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qcommandlineparser CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qcontiguouscache CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qcryptographichash CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qeasingcurve Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
qexplicitlyshareddatapointer CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qflatmap CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qfreelist CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qhash QChar: make construction from integral explicit 2020-11-15 14:41:05 +01:00
qhashfunctions CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qline Deal with {und,ov}erflow issues in QLine's length handling 2020-09-30 16:26:49 +02:00
qlist Simplify reallocation handling in QList 2020-11-17 11:45:46 +01:00
qmacautoreleasepool CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qmakearray CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qmap CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qmargins CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qmessageauthenticationcode CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qoffsetstringarray CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qpair CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qpoint CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qpointf CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qqueue CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qrect Improve QRectF::toRect() 2020-10-12 13:00:43 +02:00
qringbuffer CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qscopedpointer CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qscopedvaluerollback CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qscopeguard Replace Q_REQUIRED_RESULT with [[nodiscard]] 2020-09-25 07:10:45 +02:00
qset CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qsharedpointer Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
qsize CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qsizef CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qstl CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qtaggedpointer CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qtimeline CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
qvarlengtharray Make QVarLengthArray comparisons hidden friends 2020-10-30 13:27:14 +01:00
qversionnumber CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
.prev_CMakeLists.txt Android: blacklist a list of failing tests for android 2020-11-04 12:27:49 +02:00
CMakeLists.txt Android: blacklist a list of failing tests for android 2020-11-04 12:27:49 +02:00
tools.pro Android: blacklist a list of failing tests for android 2020-11-04 12:27:49 +02:00