mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-27 19:07:24 +00:00
The C++ standard does not allow specifying the template parameters in constructor declarations, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97202#c8. Converting constructors have a higher priority that user-defined conversion functions; let's constrain `Gfx::Size<T>(Gfx::Size<U>)` to only be considered when `U` is convertible to `T`. This lets us fall back to conversion operators in the case of `UISize` -> `IntSize`, for instance. Clang is still okay without this, but MSVC would error out similarly: https://godbolt.org/z/PTbeYPM7s Note that a not-yet-committed patch is required for full compilation: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114784#c3