Algorithm::unite: take std::vector instead of any Container

std::vector has a second template parameter - Allocator. Because of it,
Clang and MSVC refuse to match a temporary
std::vector<QSet<IndexedString>> to Container<QSet<T>>&&. And so FreeBSD
and Windows KDevelop CI builds fail.

From :
To match a template template argument A to a template template parameter
P, [each of the template parameters of A must match corresponding
template parameters of P exactly] (until C++17) [P must be at least as
specialized as A] (since C++17).

The corresponding paper adopted in C++17:

From :
(10): Despite being the resolution to a Defect Report, this feature is
disabled by default in all language versions, and can be enabled
explicitly with the flag -frelaxed-template-template-args in Clang 4
onwards. The change to the standard lacks a corresponding change for
template partial ordering, resulting in ambiguity errors for reasonable
and previously-valid code. This issue is expected to be rectified soon.
- Microsoft claims that P0522R0 is supported since Visual Studio 2017
15.5, but the MSVC implementation is apparently buggy.
1 job for !233 with fix-clang-msvc-builds in 32 minutes and 28 seconds (queued for 78 minutes and 35 seconds)
latest detached
Status Job ID Name Coverage
passed #100730
linux kf5-qt5 qt5.15