Esempio n. 1
0
        /// <summary>
        /// Tries to match the specified type name against template arguments.
        /// </summary>
        /// <param name="typeName">The type name.</param>
        /// <param name="argumentName">The found argument name.</param>
        /// <returns><c>true</c> if template argument was matched.</returns>
        private bool TryGetTemplateArgument(string typeName, out string argumentName)
        {
            if (TemplateType.TryGetTemplateArgument(typeName, out argumentName))
            {
                return(true);
            }

            if (typeName == "wchar_t")
            {
                if (TemplateType.TryGetTemplateArgument("unsigned short", out argumentName))
                {
                    return(true);
                }
            }
            else if (typeName == "unsigned short")
            {
                if (TemplateType.TryGetTemplateArgument("whcar_t", out argumentName))
                {
                    return(true);
                }
            }
            else if (typeName == "unsigned long long")
            {
                if (TemplateType.TryGetTemplateArgument("unsigned __int64", out argumentName))
                {
                    return(true);
                }
            }
            else if (typeName == "unsigned __int64")
            {
                if (TemplateType.TryGetTemplateArgument("unsigned long long", out argumentName))
                {
                    return(true);
                }
            }
            else if (typeName == "long long")
            {
                if (TemplateType.TryGetTemplateArgument("__int64", out argumentName))
                {
                    return(true);
                }
            }
            else if (typeName == "__int64")
            {
                if (TemplateType.TryGetTemplateArgument("long long", out argumentName))
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 2
0
        /// <summary>
        /// Tries to match the specified type name against template arguments.
        /// </summary>
        /// <param name="typeName">The type name.</param>
        /// <param name="argumentName">The found argument name.</param>
        /// <returns><c>true</c> if template argument was matched.</returns>
        private bool TryGetTemplateArgument(string typeName, out string argumentName)
        {
            if (TemplateType.TryGetTemplateArgument(typeName, out argumentName))
            {
                return(true);
            }

            foreach (Tuple <string, string> tps in ConversionTypes)
            {
                if (typeName == tps.Item1 && TemplateType.TryGetTemplateArgument(tps.Item2, out argumentName))
                {
                    return(true);
                }
                if (typeName == tps.Item2 && TemplateType.TryGetTemplateArgument(tps.Item1, out argumentName))
                {
                    return(true);
                }
            }

            return(false);
        }