File tree Expand file tree Collapse file tree 2 files changed +13
-0
lines changed Expand file tree Collapse file tree 2 files changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -460,6 +460,17 @@ std::string Cppyy::ResolveName(const std::string& name) {
460460// return "const " + TClassEdit::ShortType(tclean.c_str(), 2);
461461// }
462462
463+ Cppyy::TCppType_t Cppyy::ResolveEnumReferenceType (TCppType_t type) {
464+ if (!Cpp::IsLValueReferenceType (type))
465+ return type;
466+
467+ TCppType_t nonReferenceType = Cpp::GetNonReferenceType (type);
468+ if (Cpp::IsEnumType (nonReferenceType)) {
469+ TCppType_t underlying_type = Cpp::GetIntegerTypeFromEnumType (nonReferenceType);
470+ return Cpp::GetReferencedType (underlying_type);
471+ }
472+ return type;
473+ }
463474
464475Cppyy::TCppType_t Cppyy::ResolveType (TCppType_t type) {
465476 Cppyy::TCppType_t canonType = Cpp::GetCanonicalType (type);
Original file line number Diff line number Diff line change @@ -78,6 +78,8 @@ namespace Cppyy {
7878 RPY_EXPORTED
7979 TCppType_t ResolveType (TCppType_t cppitem_name);
8080 RPY_EXPORTED
81+ TCppType_t ResolveEnumReferenceType (TCppType_t type);
82+ RPY_EXPORTED
8183 TCppType_t GetRealType (TCppType_t type);
8284 RPY_EXPORTED
8385 std::string ResolveEnum (TCppScope_t enum_scope);
You can’t perform that action at this time.
0 commit comments