Import revision 48770 from the trunk:

Add routines to get the desugared type for the return type of a method
and for its arguments.  Namely:
  TFunction::GetReturnTypeNormalizedName
  TMethodArg::GetTypeNormalizedName

Those routines are similar to routines that are named using the words
'TrueName' but have a different signature (and in ROOT 6 have a clarified
definition).

These routines have the signature:

   std::string GetReturnTypeNormalizedName() const;

They do not return 'const char*' to avoid having to have a static buffer
holding the information or recording the information as part of the object.

They do not return TString to avoid the tempting (and compilable) 'const char
*str = method->Get...();' which would lead to inadvertent use of 'destroyed'
memory.

They do return std::string as in C++11, thanks to the move constructor, will no
longer be expansive to return.

If those routines becomes/are very time critical in C++03, we will then either
add a similar routines returning const char* (for example GetTrueTypeName) or a
similar routines taking the output string as an argument by reference.


git-svn-id: https://root.cern.ch/svn/root/branches/v5-34-00-patches@48771 27541ba8-7e3a-0410-8455-c3a389f83636
Use a name less likely to clash in the global scope


git-svn-id: https://root.cern.ch/svn/root/branches/v5-34-00-patches@48772 27541ba8-7e3a-0410-8455-c3a389f83636
In GetDirectory instead of loading the object and then check the type is correct, use GetObject to check before hand.


git-svn-id: https://root.cern.ch/svn/root/branches/v5-34-00-patches@48773 27541ba8-7e3a-0410-8455-c3a389f83636