RPNXCortado
C++23 JVM class-file, bytecode, validation, and JAR toolkit
Loading...
Searching...
No Matches
rpnx::cortado::class_hierarchy_resolver_ref Class Reference

Non-owning type-erased class-hierarchy resolver used for reference merges. More...

#include <builders.hpp>

Public Member Functions

 class_hierarchy_resolver_ref ()=default
 Constructs an empty resolver.
 
template<typename Resolver>
 class_hierarchy_resolver_ref (Resolver &resolver) noexcept
 Refers to an object exposing common_superclass(string_view, string_view).
 
 operator bool () const noexcept
 Returns whether a resolver is present.
 
std::string common_superclass (std::string_view left, std::string_view right) const
 Resolves the least common superclass of two internal class names.
 

Detailed Description

Non-owning type-erased class-hierarchy resolver used for reference merges.

The referenced resolver must outlive every call through this object. The wrapper never owns, copies, or synchronizes the resolver.

Definition at line 285 of file builders.hpp.

Constructor & Destructor Documentation

◆ class_hierarchy_resolver_ref()

template<typename Resolver>
rpnx::cortado::class_hierarchy_resolver_ref::class_hierarchy_resolver_ref ( Resolver & resolver)
inlineexplicitnoexcept

Refers to an object exposing common_superclass(string_view, string_view).

Template Parameters
ResolverMutable resolver type with a compatible member function returning std::string.
Parameters
resolverObject to reference; it must outlive this wrapper's use.

Definition at line 296 of file builders.hpp.

References common_superclass().

Member Function Documentation

◆ common_superclass()

std::string rpnx::cortado::class_hierarchy_resolver_ref::common_superclass ( std::string_view left,
std::string_view right ) const
nodiscard

Resolves the least common superclass of two internal class names.

Parameters
leftFirst slash-separated class or interface name.
rightSecond slash-separated class or interface name.
Returns
Slash-separated least common superclass name.
Exceptions
unsupported_feature_errorif this wrapper is empty.

References common_superclass().

Referenced by class_hierarchy_resolver_ref(), and common_superclass().

◆ operator bool()

rpnx::cortado::class_hierarchy_resolver_ref::operator bool ( ) const
explicitnodiscardnoexcept

Returns whether a resolver is present.

Returns
true if this wrapper can perform hierarchy queries.

The documentation for this class was generated from the following file: