public static bool operator==(SdfValueTypeName lhs, SdfValueTypeName rhs)
        {
            // The Swig binding glue will re-enter this operator comparing to null, so
            // that case must be handled explicitly to avoid an infinite loop. This is still
            // not great, since it crosses the C#/C++ barrier twice. A better approache might
            // be to return a simple value from C++ that can be compared in C#.
            bool lnull = lhs as object == null;
            bool rnull = rhs as object == null;

            return((lnull == rnull) && ((lnull && rnull) || SdfValueTypeName.Equals(lhs, rhs)));
        }
 override public bool Equals(object rhs)
 {
     return(SdfValueTypeName.Equals(this, rhs as SdfValueTypeName));
 }