typedef typename _Pointer::type pointer;
we should resolve the actual type of the string "_Pointer::type".
As the definition of the embedded class _Pointer, "_Pointer::type" is actually a type from the "decltype operator" deduced from the expression "__test<_Del>(0)".
Then "__test<_Del>(0)" is a function calling expression defined by
template<typename _Up>
static _Tp* __test(...);
So, it's actual type is "_Tp*".
As a conclusion: C++'s type-deduction mechanism is heaven for programmer, but it is the hell for compiler/parser writer.
, each step should involve the symbol table check and semantics check.
I don't think it can be implemented in CC, it was too complex.