widl: Make WinRT nested templates C++98 compatible.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Rémi Bernon 2021-02-26 09:43:04 +01:00 committed by Alexandre Julliard
parent 6966d7ea08
commit 31cbca5f07
2 changed files with 5 additions and 5 deletions

View File

@ -34,8 +34,8 @@ cpp_quote("namespace ABI { namespace Windows { namespace Foundation { namespace
cpp_quote("template <class T> struct GetAbiType { typedef T type; };")
cpp_quote("template <class T> struct GetLogicalType { typedef T type; };")
cpp_quote("template <class L, class A> struct AggregateType {};")
cpp_quote("template <class L, class A> struct GetAbiType<AggregateType<L, A>> { typedef A type; };")
cpp_quote("template <class L, class A> struct GetLogicalType<AggregateType<L, A>> { typedef L type; };")
cpp_quote("template <class L, class A> struct GetAbiType<AggregateType<L, A> > { typedef A type; };")
cpp_quote("template <class L, class A> struct GetLogicalType<AggregateType<L, A> > { typedef L type; };")
cpp_quote("}}}}")
cpp_quote("extern \"C\" {")
cpp_quote("#endif")

View File

@ -279,7 +279,7 @@ char *format_parameterized_type_name(type_t *type, typeref_list_t *params)
pos += append_pointer_stars(&buf, &len, pos, ref->type);
if (list_next(params, &ref->entry)) pos += strappend(&buf, &len, pos, ",");
}
pos += strappend(&buf, &len, pos, ">");
pos += strappend(&buf, &len, pos, " >");
return buf;
}
@ -360,7 +360,7 @@ static char *format_parameterized_type_impl_name(type_t *type, typeref_list_t *p
iface = type_runtimeclass_get_default_iface(type);
pos += strappend(&buf, &len, pos, ", %s", iface->qualified_name);
pos += append_pointer_stars(&buf, &len, pos, ref->type);
pos += strappend(&buf, &len, pos, ">");
pos += strappend(&buf, &len, pos, " >");
}
else
{
@ -369,7 +369,7 @@ static char *format_parameterized_type_impl_name(type_t *type, typeref_list_t *p
}
if (list_next(params, &ref->entry)) pos += strappend(&buf, &len, pos, ", ");
}
pos += strappend(&buf, &len, pos, ">");
pos += strappend(&buf, &len, pos, " >");
return buf;
}