
Is there any way to understand the meaning of _Ux, _Dx, _Dt here? This mnemonics tells me nothing about parameters.

Is there any way to understand the meaning of _Ux, _Dx, _Dt here? This mnemonics tells me nothing about parameters.
 
    
    These "mnemonics" as you call it are nothing but a hint generated by Visual Studio's IntelliSense that is meant to help you while writing the code (syntax) rather than the meaning (semantics).
If you need more information to help you understand the API and its proper usage, you should rather consult the documentation. In this case it might be the reference for std::shared_ptr's constructor 
 
    
    This "weird names" thing has (at least partly) to do with reserved identifiers. The programmer (you, me) is not allowed to define names like _Ux that begin with an underscore followed by a capital letter (nor names like __x or a__b that contain adjacent underscores) anywhere in his source code. The C++ implementation (Standard Library details, compiler internals...) can thus use this reserved "name space" without fearing name clashes with user code.
That's a win-win: the implementation will never define names like fooBar or FOO_BAR (set aside keywords like int and public names like std, printf or CHAR_BIT), so you can safely use these names in your code, and reciprocally you should never define names like _FooBar, __foo_bar or FOO__BAR, so that you won't mess up with the implementation (this is especially true for macros).
As for why they use _Ux * _Px, _Dx _Dt and not e.g. _U * __p, _Deleter __d (also _Ty and not _T), well, I guess that it's simply their internal naming conventions.