2 // The second GetAllSize template is more specialized because even though
3 // deduction on each parameter type succeeds, we never get a template
4 // argument for its X to make it match the first template.
6 template <typename T, int (T::*)() const>
14 GetAllSize(const X &Var)
15 { return sizeof(Var); }
19 GetAllSize(const typename TSizeEnabler<X, &X::func>::TClass &Var)
20 { return Var.func(); }
30 return GetAllSize< H >(b);