This document provides the API specifications for the C++ library Proxy (version 3). All the documented concepts, classes, and functions are defined in the namespace pro
. Unless otherwise specified, all facilities are freestanding by default.
Name | Description |
---|---|
facade |
Specifies that a type models a “facade” |
inplace_proxiable_target |
Specifies that a value type can instantiate a proxy without allocation |
proxiable_target (since 3.3.0) |
Specifies that a reference type can instantiate a proxy_view |
proxiable |
Specifies that a pointer type can instantiate a proxy |
Name | Description |
---|---|
bad_proxy_cast (since 3.2.0) |
Exception thrown by the value-returning forms of proxy_cast on a type mismatch |
basic_facade_builder facade_builder |
Provides capability to build a facade type at compile-time |
constraint_level |
Defines the 4 constraint levels of a special member function |
explicit_conversion_dispatch conversion_dispatch (since 3.2.0) |
Dispatch type for explicit conversion expressions with accessibility |
facade_aware_overload_t (since 3.2.1) |
Specifies a facade-aware overload template |
implicit_conversion_dispatch (since 3.2.0) |
Dispatch type for implicit conversion expressions with accessibility |
not_implemented (since 3.2.0) |
Exception thrown by weak_dispatch for the default implementation |
operator_dispatch |
Dispatch type for operator expressions with accessibility |
proxiable_ptr_constraints |
Defines the constraints of a pointer type to instantiate a proxy |
proxy_indirect_accessor (since 3.2.0) |
Provides indirection accessibility for proxy |
proxy_view observer_facade (since 3.2.0) |
Non-owning proxy optimized for raw pointer types |
proxy |
Wraps a pointer object matching specified facade |
std::formatter<proxy_indirect_accessor> (since 3.2.0) |
Formatting support for proxy_indirect_accessor |
weak_dispatch (since 3.2.0) |
Weak dispatch type with a default implementation that throws not_implemented |
weak_proxy weak_facade (since 3.3.0) |
proxy with weak ownership |
Name | Description |
---|---|
access_proxy |
Accesses a proxy object via an accessor |
allocate_proxy_shared (since 3.3.0) |
Creates a proxy object with shared ownership using an allocator |
allocate_proxy |
Creates a proxy object with an allocator |
make_proxy_inplace |
Creates a proxy object with strong no-allocation guarantee |
make_proxy_shared (since 3.3.0) |
Creates a proxy object with shared ownership |
make_proxy_view (since 3.3.0) |
Creates a proxy_view object |
make_proxy |
Creates a proxy object potentially with heap allocation |
proxy_invoke |
Invokes a proxy with a specified convention |
proxy_reflect |
Acquires reflection information of the underlying pointer type |
Name | Description |
---|---|
__msft_lib_proxy |
Feature test macro |
PRO_DEF_FREE_AS_MEM_DISPATCH (since 3.1.0) |
Defines a dispatch type for free function call expressions with accessibility via a member function |
PRO_DEF_FREE_DISPATCH |
Defines a dispatch type for free function call expressions with accessibility |
PRO_DEF_MEM_DISPATCH |
Defines a dispatch type for member function call expressions with accessibility |
PRO_DEF_WEAK_DISPATCH (deprecated since 3.2.0) |
Defines a weak dispatch type with a default implementation |
Name | Description |
---|---|
ProAccessible | Specifies that a type provides accessibility to proxy |
ProBasicConvention | Specifies that a type potentially models a “convention” |
ProBasicFacade | Specifies that a type potentially models a “facade” of proxy |
ProBasicReflection (since 3.1.0) |
Specifies that a type potentially models a “reflection” |
ProConvention | Specifies that a type models a “convention” |
ProDispatch | Specifies that a type models a “dispatch” |
ProFacade | Specifies that a type models a “facade” of proxy |
ProOverload | Specifies that a type models an “overload” |
ProReflection (since 3.1.0) |
Specifies that a type models a “reflection” |