Proxy 4 Brings Reusable Polymorphism Tools and Enhanced Proxy Helpers to C++
Microsoft has announced Proxy 4, the latest version of its C++ Proxy library designed for runtime polymorphism. Released on August 19 and available on GitHub, Proxy 4 expands the library’s capabilities with new building blocks for composing facades, aliases for expressing borrowing and weak ownership patterns, and helpers for efficiently creating shared and weak proxies. The library remains header-only, cross-platform, and fully compliant with C++20 standards, making it a versatile tool for developers seeking polymorphic behavior without relying on traditional inheritance or virtual functions.
One of the standout features in Proxy 4 is the introduction of aliases for non-owning and weak references, namely proxy_view and weak_proxy. Built atop the core proxy_concept, these aliases simplify the expression of borrowing and weak ownership patterns in C++ code. For instance, proxy_view allows developers to safely borrow an object without taking ownership, while weak_proxy enables weak references that can be locked when needed, reducing the risk of dangling pointers and enhancing memory safety.
Proxy 4 also adds new APIs for shared and weak proxies, including make_proxy_shared and allocate_proxy_shared. These functions allow developers to create proxies efficiently, avoiding the performance overhead typically associated with std::shared_ptr. By leveraging compact internal pointer types, these APIs deliver both high performance and low memory usage, making them well-suited for performance-critical applications where polymorphic patterns are needed at runtime.
Additionally, the library introduces facade_aware_overload_t, which lets developers define recursive conventions that reference the facade itself without requiring early instantiation. This is particularly useful for operator chaining patterns, such as arithmetic operations or string concatenation, where each operation returns a new proxy object of the same facade. With these enhancements, Proxy 4 provides developers with powerful tools to write clean, efficient, and flexible polymorphic C++ code.

