René's URL Explorer Experiment


Title: Proxy 4

Description: Next Generation Polymorphism in C++

Mail addresses
ngcpp@outlook.com

Generator: mkdocs-1.6.1, mkdocs-material-9.7.6

direct link

Domain: ngcpp.github.io

Links:

Skip to content https://ngcpp.github.io/proxy/#proxy-next-generation-polymorphism-in-c
https://ngcpp.github.io/proxy/
GitHub https://github.com/ngcpp/proxy/
https://ngcpp.github.io/proxy/
GitHub https://github.com/ngcpp/proxy/
Home https://ngcpp.github.io/proxy/
Our Mission https://ngcpp.github.io/proxy/#our-mission
Quick Start https://ngcpp.github.io/proxy/#quick-start
Hello World https://ngcpp.github.io/proxy/#hello-world
Hello World (Stream Version) https://ngcpp.github.io/proxy/#hello-world-stream-version
More Expressions https://ngcpp.github.io/proxy/#more-expressions
Other Useful Features https://ngcpp.github.io/proxy/#other-useful-features
Minimum Requirements for Compilers https://ngcpp.github.io/proxy/#minimum-requirements-for-compilers
Build System Integration https://ngcpp.github.io/proxy/#build-system-integration
CMake https://ngcpp.github.io/proxy/#cmake
Meson https://ngcpp.github.io/proxy/#meson
Bazel https://ngcpp.github.io/proxy/#bazel
Build and Run Tests https://ngcpp.github.io/proxy/#build-and-run-tests
CMake https://ngcpp.github.io/proxy/#cmake_1
Meson https://ngcpp.github.io/proxy/#meson_1
Bazel https://ngcpp.github.io/proxy/#bazel_1
Related Resources https://ngcpp.github.io/proxy/#related-resources
Contributing https://ngcpp.github.io/proxy/#contributing
Specifications https://ngcpp.github.io/proxy/spec/
facade https://ngcpp.github.io/proxy/spec/facade/
inplace_proxiable_target https://ngcpp.github.io/proxy/spec/inplace_proxiable_target/
proxiable_target https://ngcpp.github.io/proxy/spec/proxiable_target/
proxiable https://ngcpp.github.io/proxy/spec/proxiable/
bad_proxy_cast https://ngcpp.github.io/proxy/spec/bad_proxy_cast/
basic_facade_builderfacade_builder https://ngcpp.github.io/proxy/spec/basic_facade_builder/
add_conventionadd_indirect_conventionadd_direct_convention https://ngcpp.github.io/proxy/spec/basic_facade_builder/add_convention/
add_facade_with_substitution https://ngcpp.github.io/proxy/spec/basic_facade_builder/add_facade_with_substitution/
add_facade https://ngcpp.github.io/proxy/spec/basic_facade_builder/add_facade/
add_reflectionadd_indirect_reflectionadd_direct_reflection https://ngcpp.github.io/proxy/spec/basic_facade_builder/add_reflection/
add_skill https://ngcpp.github.io/proxy/spec/basic_facade_builder/add_skill/
build https://ngcpp.github.io/proxy/spec/basic_facade_builder/build/
restrict_layout https://ngcpp.github.io/proxy/spec/basic_facade_builder/restrict_layout/
support_copy https://ngcpp.github.io/proxy/spec/basic_facade_builder/support_copy/
support_destruction https://ngcpp.github.io/proxy/spec/basic_facade_builder/support_destruction/
support_relocation https://ngcpp.github.io/proxy/spec/basic_facade_builder/support_relocation/
constraint_level https://ngcpp.github.io/proxy/spec/constraint_level/
explicit_conversion_dispatchconversion_dispatch https://ngcpp.github.io/proxy/spec/explicit_conversion_dispatch/
accessor https://ngcpp.github.io/proxy/spec/explicit_conversion_dispatch/accessor/
operator() https://ngcpp.github.io/proxy/spec/explicit_conversion_dispatch/operator_call/
facade_aware_overload_t https://ngcpp.github.io/proxy/spec/facade_aware_overload_t/
implicit_conversion_dispatch https://ngcpp.github.io/proxy/spec/implicit_conversion_dispatch/
accessor https://ngcpp.github.io/proxy/spec/implicit_conversion_dispatch/accessor/
operator() https://ngcpp.github.io/proxy/spec/implicit_conversion_dispatch/operator_call/
is_bitwise_trivially_relocatable https://ngcpp.github.io/proxy/spec/is_bitwise_trivially_relocatable/
not_implemented https://ngcpp.github.io/proxy/spec/not_implemented/
operator_dispatch https://ngcpp.github.io/proxy/spec/operator_dispatch/
accessor https://ngcpp.github.io/proxy/spec/operator_dispatch/accessor/
operator() https://ngcpp.github.io/proxy/spec/operator_dispatch/operator_call/
proxy_indirect_accessor https://ngcpp.github.io/proxy/spec/proxy_indirect_accessor/
invoke https://ngcpp.github.io/proxy/spec/proxy_indirect_accessor/friend_invoke/
reflect https://ngcpp.github.io/proxy/spec/proxy_indirect_accessor/friend_reflect/
reinterpret_invoke https://ngcpp.github.io/proxy/spec/proxy_indirect_accessor/friend_reinterpret_invoke/
proxy_viewobserver_facade https://ngcpp.github.io/proxy/spec/proxy_view/
proxy https://ngcpp.github.io/proxy/spec/proxy/
(constructor) https://ngcpp.github.io/proxy/spec/proxy/constructor/
(destructor) https://ngcpp.github.io/proxy/spec/proxy/destructor/
emplace https://ngcpp.github.io/proxy/spec/proxy/emplace/
invoke (non-member) https://ngcpp.github.io/proxy/spec/proxy/friend_invoke/
operator boolhas_value https://ngcpp.github.io/proxy/spec/proxy/operator_bool/
operator->operator* https://ngcpp.github.io/proxy/spec/proxy/indirection/
operator= (non-member) https://ngcpp.github.io/proxy/spec/proxy/friend_operator_equality/
operator= https://ngcpp.github.io/proxy/spec/proxy/assignment/
reflect (non-member) https://ngcpp.github.io/proxy/spec/proxy/friend_reflect/
reinterpret_invoke (non-member) https://ngcpp.github.io/proxy/spec/proxy/friend_reinterpret_invoke/
reset https://ngcpp.github.io/proxy/spec/proxy/reset/
swap (non-member) https://ngcpp.github.io/proxy/spec/proxy/friend_swap/
swap https://ngcpp.github.io/proxy/spec/proxy/swap/
substitution_dispatch https://ngcpp.github.io/proxy/spec/substitution_dispatch/
accessor https://ngcpp.github.io/proxy/spec/substitution_dispatch/accessor/
operator() https://ngcpp.github.io/proxy/spec/substitution_dispatch/operator_call/
weak_dispatch https://ngcpp.github.io/proxy/spec/weak_dispatch/
operator() https://ngcpp.github.io/proxy/spec/weak_dispatch/operator_call/
weak_proxyweak_facade https://ngcpp.github.io/proxy/spec/weak_proxy/
skills::as_view https://ngcpp.github.io/proxy/spec/skills_as_view/
skills::as_weak https://ngcpp.github.io/proxy/spec/skills_as_weak/
skills::fmt_formatskills::fmt_wformat https://ngcpp.github.io/proxy/spec/skills_fmt_format/
skills::formatskills::wformat https://ngcpp.github.io/proxy/spec/skills_format/
skills::rttiskills::indirect_rttiskills::direct_rtti https://ngcpp.github.io/proxy/spec/skills_rtti/
proxy_cast https://ngcpp.github.io/proxy/spec/skills_rtti/proxy_cast/
proxy_typeid https://ngcpp.github.io/proxy/spec/skills_rtti/proxy_typeid/
skills::slim https://ngcpp.github.io/proxy/spec/skills_slim/
allocate_proxy_shared https://ngcpp.github.io/proxy/spec/allocate_proxy_shared/
allocate_proxy https://ngcpp.github.io/proxy/spec/allocate_proxy/
make_proxy_inplace https://ngcpp.github.io/proxy/spec/make_proxy_inplace/
make_proxy_shared https://ngcpp.github.io/proxy/spec/make_proxy_shared/
make_proxy_view https://ngcpp.github.io/proxy/spec/make_proxy_view/
make_proxy https://ngcpp.github.io/proxy/spec/make_proxy/
proxy_invoke https://ngcpp.github.io/proxy/spec/proxy_invoke/
proxy_reflect https://ngcpp.github.io/proxy/spec/proxy_reflect/
__msft_lib_proxy https://ngcpp.github.io/proxy/spec/msft_lib_proxy/
PRO_DEF_FREE_AS_MEM_DISPATCH https://ngcpp.github.io/proxy/spec/PRO_DEF_FREE_AS_MEM_DISPATCH/
PRO_DEF_FREE_DISPATCH https://ngcpp.github.io/proxy/spec/PRO_DEF_FREE_DISPATCH/
PRO_DEF_MEM_DISPATCH https://ngcpp.github.io/proxy/spec/PRO_DEF_MEM_DISPATCH/
ProAccessible https://ngcpp.github.io/proxy/spec/ProAccessible/
ProBasicConvention https://ngcpp.github.io/proxy/spec/ProBasicConvention/
ProBasicFacade https://ngcpp.github.io/proxy/spec/ProBasicFacade/
ProBasicReflection https://ngcpp.github.io/proxy/spec/ProBasicReflection/
ProConvention https://ngcpp.github.io/proxy/spec/ProConvention/
ProDispatch https://ngcpp.github.io/proxy/spec/ProDispatch/
ProFacade https://ngcpp.github.io/proxy/spec/ProFacade/
ProOverload https://ngcpp.github.io/proxy/spec/ProOverload/
ProReflection https://ngcpp.github.io/proxy/spec/ProReflection/
Modules Support https://ngcpp.github.io/proxy/modules_support/
FAQ https://ngcpp.github.io/proxy/faq/
Our Mission https://ngcpp.github.io/proxy/#our-mission
Quick Start https://ngcpp.github.io/proxy/#quick-start
Hello World https://ngcpp.github.io/proxy/#hello-world
Hello World (Stream Version) https://ngcpp.github.io/proxy/#hello-world-stream-version
More Expressions https://ngcpp.github.io/proxy/#more-expressions
Other Useful Features https://ngcpp.github.io/proxy/#other-useful-features
Minimum Requirements for Compilers https://ngcpp.github.io/proxy/#minimum-requirements-for-compilers
Build System Integration https://ngcpp.github.io/proxy/#build-system-integration
CMake https://ngcpp.github.io/proxy/#cmake
Meson https://ngcpp.github.io/proxy/#meson
Bazel https://ngcpp.github.io/proxy/#bazel
Build and Run Tests https://ngcpp.github.io/proxy/#build-and-run-tests
CMake https://ngcpp.github.io/proxy/#cmake_1
Meson https://ngcpp.github.io/proxy/#meson_1
Bazel https://ngcpp.github.io/proxy/#bazel_1
Related Resources https://ngcpp.github.io/proxy/#related-resources
Contributing https://ngcpp.github.io/proxy/#contributing
https://github.com/ngcpp/proxy/actions/workflows/pipeline-ci.yml
GC languageshttps://en.wikipedia.org/wiki/Garbage_collection_(computer_science)
https://www.youtube.com/watch?v=b_VNOq-lI4A
microsoft/proxyhttps://github.com/microsoft/proxy
Rusthttps://doc.rust-lang.org/book/ch10-02-traits.html
freestandinghttps://en.cppreference.com/w/cpp/freestanding
Proxy's Frequently Asked Questionshttps://ngcpp.github.io/proxy/faq
specificationshttps://ngcpp.github.io/proxy/spec
minimum requirementshttps://ngcpp.github.io/proxy/#compiler-req
proxy/includehttps://github.com/ngcpp/proxy/tree/main/include
vcpkghttps://learn.microsoft.com/en-us/vcpkg/get_started/overview
proxy port on vcpkg.iohttps://vcpkg.io/en/package/proxy
conanhttps://conan.io/
proxy recipe on conan.iohttps://conan.io/center/recipes/proxy
Build System Integrationhttps://ngcpp.github.io/proxy/#build-system-integration
runhttps://godbolt.org/z/f7W36f3se
std::formathttps://en.cppreference.com/w/cpp/utility/format/format
std::couthttps://en.cppreference.com/w/cpp/io/cout
std::stringhttps://en.cppreference.com/w/cpp/string/basic_string
ProFacade requirementshttps://ngcpp.github.io/proxy/spec/ProFacade
pro::facade_builderhttps://ngcpp.github.io/proxy/spec/basic_facade_builder
add_skillhttps://ngcpp.github.io/proxy/spec/basic_facade_builder/add_skill
pro::skills::formathttps://ngcpp.github.io/proxy/spec/skills_format
standard formatting functionshttps://en.cppreference.com/w/cpp/utility/format
buildhttps://ngcpp.github.io/proxy/docs/basic_facade_builder/build.html
pro::proxyhttps://ngcpp.github.io/proxy/spec/proxy
pro::proxyhttps://ngcpp.github.io/proxy/spec/proxy
std::make_uniquehttps://en.cppreference.com/w/cpp/memory/unique_ptr/make_unique
std::unique_ptrhttps://en.cppreference.com/w/cpp/memory/unique_ptr
pro::proxyhttps://ngcpp.github.io/proxy/spec/proxy
pro::make_proxyhttps://ngcpp.github.io/proxy/spec/make_proxy
pro::make_proxyhttps://ngcpp.github.io/proxy/spec/make_proxy
pro::make_proxy_inplacehttps://ngcpp.github.io/proxy/spec/make_proxy_inplace
std::functionhttps://en.cppreference.com/w/cpp/utility/functional/function
standard format specificationhttps://en.cppreference.com/w/cpp/utility/format/spec
C++20 Modules supporthttps://ngcpp.github.io/proxy/modules_support
runhttps://godbolt.org/z/447aMbrbj
std::setprecisionhttps://en.cppreference.com/w/cpp/io/manip/setprecision
std::couthttps://en.cppreference.com/w/cpp/io/cout
std::stringhttps://en.cppreference.com/w/cpp/string/basic_string
pro::facade_builderhttps://ngcpp.github.io/proxy/spec/basic_facade_builder
add_conventionhttps://ngcpp.github.io/proxy/spec/basic_facade_builder/add_convention
pro::operator_dispatchhttps://ngcpp.github.io/proxy/spec/operator_dispatch
std::move_only_functionhttps://en.cppreference.com/w/cpp/utility/functional/move_only_function
buildhttps://ngcpp.github.io/proxy/spec/basic_facade_builder/build
pro::proxyhttps://ngcpp.github.io/proxy/spec/proxy
pro::proxyhttps://ngcpp.github.io/proxy/spec/proxy
std::make_uniquehttps://en.cppreference.com/w/cpp/memory/unique_ptr/make_unique
std::unique_ptrhttps://en.cppreference.com/w/cpp/memory/unique_ptr
pro::proxyhttps://ngcpp.github.io/proxy/spec/proxy
pro::make_proxyhttps://ngcpp.github.io/proxy/spec/make_proxy
macro PRO_DEF_MEM_DISPATCHhttps://ngcpp.github.io/proxy/spec/PRO_DEF_MEM_DISPATCH
macro PRO_DEF_FREE_DISPATCHhttps://ngcpp.github.io/proxy/spec/PRO_DEF_FREE_DISPATCH
macro PRO_DEF_FREE_AS_MEM_DISPATCHhttps://ngcpp.github.io/proxy/spec/PRO_DEF_FREE_AS_MEM_DISPATCH
class template pro::operator_dispatchhttps://ngcpp.github.io/proxy/spec/operator_dispatch
class explicit_conversion_dispatch (aka. conversion_dispatch)https://ngcpp.github.io/proxy/spec/explicit_conversion_dispatch
class implicit_conversion_dispatchhttps://ngcpp.github.io/proxy/spec/implicit_conversion_dispatch
runhttps://godbolt.org/z/E95nY7PYq
std::couthttps://en.cppreference.com/w/cpp/io/cout
std::stringstreamhttps://en.cppreference.com/w/cpp/io/basic_stringstream
PRO_DEF_MEM_DISPATCHhttps://ngcpp.github.io/proxy/spec/PRO_DEF_MEM_DISPATCH
PRO_DEF_MEM_DISPATCHhttps://ngcpp.github.io/proxy/spec/PRO_DEF_MEM_DISPATCH
add_conventionhttps://ngcpp.github.io/proxy/spec/basic_facade_builder/add_convention
support_copyhttps://ngcpp.github.io/proxy/spec/basic_facade_builder/support_copy
pro::constraint_levelhttps://ngcpp.github.io/proxy/spec/constraint_level
ABIhttps://en.wikipedia.org/wiki/Application_binary_interface
specificationshttps://ngcpp.github.io/proxy/spec
facade_builder::add_conventionhttps://ngcpp.github.io/proxy/spec/basic_facade_builder/add_convention
ProOverload requirementshttps://ngcpp.github.io/proxy/spec/ProOverload
facade_builder::add_facadehttps://ngcpp.github.io/proxy/spec/basic_facade_builder/add_facade
proxiablehttps://ngcpp.github.io/proxy/spec/proxiable
proxiable_targethttps://ngcpp.github.io/proxy/spec/proxiable_target
inplace_proxiable_targethttps://ngcpp.github.io/proxy/spec/inplace_proxiable_target
function template allocate_proxyhttps://ngcpp.github.io/proxy/spec/allocate_proxy
std::functionhttps://en.cppreference.com/w/cpp/utility/functional/function
std::packaged_taskhttps://en.cppreference.com/w/cpp/thread/packaged_task
removed in C++17https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0302r1.html
facade_builderhttps://ngcpp.github.io/proxy/spec/basic_facade_builder
restrict_layouthttps://ngcpp.github.io/proxy/spec/basic_facade_builder/restrict_layout
support_copyhttps://ngcpp.github.io/proxy/spec/basic_facade_builder/support_copy
support_relocationhttps://ngcpp.github.io/proxy/spec/basic_facade_builder/support_relocation
support_destructionhttps://ngcpp.github.io/proxy/spec/basic_facade_builder/support_destruction
facade_builder::add_reflectionhttps://ngcpp.github.io/proxy/spec/basic_facade_builder/add_reflection
function template reflecthttps://ngcpp.github.io/proxy/spec/proxy_indirect_accessor/reflect
function template make_proxy_viewhttps://ngcpp.github.io/proxy/spec/make_proxy_view
alias template proxy_view, class template observer_facadehttps://ngcpp.github.io/proxy/spec/proxy_view
skills::as_viewhttps://ngcpp.github.io/proxy/spec/skills_as_view
RTTI (run-time type information)https://en.wikipedia.org/wiki/Run-time_type_information
skills::rttihttps://ngcpp.github.io/proxy/spec/skills_rtti
std::shared_ptrhttps://en.cppreference.com/w/cpp/memory/shared_ptr
function template make_proxy_sharedhttps://ngcpp.github.io/proxy/spec/make_proxy_shared
allocate_proxy_sharedhttps://ngcpp.github.io/proxy/spec/allocate_proxy_shared
alias template weak_proxy, class template weak_facadehttps://ngcpp.github.io/proxy/spec/weak_proxy
skills::as_weakhttps://ngcpp.github.io/proxy/spec/skills_as_weak
weak_dispatchhttps://ngcpp.github.io/proxy/spec/weak_dispatch
CPMhttps://github.com/cpm-cmake/CPM.cmake
FetchContent_Declarehttps://cmake.org/cmake/help/latest/module/FetchContent.html
Bazel Central Registryhttps://registry.bazel.build/
Bazeliskhttps://github.com/bazelbuild/bazelisk
Announcing Proxy 4: The Next Leap in C++ Polymorphismhttps://devblogs.microsoft.com/cppblog/announcing-proxy-4-the-next-leap-in-c-polymorphism/
Published ISO C++ proposal P3086R34 Proxy: A Pointer-Semantics-Based Polymorphism Libraryhttps://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3086r4.pdf
Published ISO C++ proposal P3584R0: Enrich Facade Creation Facilities for the Pointer-Semantics-Based Polymorphism Library - Proxyhttps://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3584r0.pdf
Analyzing the Performance of the “Proxy” Libraryhttps://devblogs.microsoft.com/cppblog/analyzing-the-performance-of-the-proxy-library/
Published ISO C++ proposal P3401R0: Enrich Creation Functions for the Pointer-Semantics-Based Polymorphism Library - Proxyhttps://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3401r0.pdf
Announcing the Proxy 3 Library for Dynamic Polymorphismhttps://devblogs.microsoft.com/cppblog/announcing-the-proxy-3-library-for-dynamic-polymorphism/
proxy: Runtime Polymorphism Made Easier Than Everhttps://devblogs.microsoft.com/cppblog/proxy-runtime-polymorphism-made-easier-than-ever/
Contributor Covenant Code of Conducthttps://www.contributor-covenant.org/version/2/1/code_of_conduct/
Contributor Covenant FAQhttps://www.contributor-covenant.org/faq/
Material for MkDocs https://squidfunk.github.io/mkdocs-material/

Viewport: width=device-width,initial-scale=1


URLs of crawlers that visited me.