Personal opinions about whether UDLs are a prettier syntax for some or other purpose are interesting but not relevant.
UDL's were already considered and accepted as a C++ feature in the standard in form of time UDLs for h min s ms us ns. I and many others find these useful
https://os.mbed.com/docs/mbed-os/v6.10/apis/thisthread.html
I can of course define my own udls _h _min _s _ms _us _ns
However, since UDL's can't be qualified, they will eventually collide with someone else's. This already occurred between std::chrono and potential std units libraries. This also occurs already when I seek to interop with other units library outside std.
units is just one example in the domain I have many years of experience in, but no doubt there are many others in other domains
Sure it is inconvenient to have to be explicit about the qualifying namespace of the UDL you are using, but it should at least be possible and it should also be possible to look up overloaded UDLs without qualification or using statements in various contexts
#include <iostream>
#include <chrono>
int main()
{
auto a = std::chrono::milliseconds{5};
auto b = a + a; //this works fine
auto c = a + 5ns; // so why not this?
}