For decades, object-based virtual tables have been a de facto implementation of runtime polymorphism in many (compiled) programming languages. There are many drawbacks in this mechanism, including life management (because each object may have a different size and ownership) and reflection (because it is hard to balance between usability and memory allocation). To workaround these drawbacks, some languages like Java or C# choose to sacrifice performance by introducing GC to facilitate lifetime management, and JIT-compile the source code at runtime to generate full metadata. We improved the theory and implemented it as a C++ library without sacrificing performance, proposing to merge it into the C++ standard.
Features
- The "proxy" is a single-header, cross-platform C++ library
- Documentation available
- The "proxy" is a header-only C++20 library
- Use proxy with CMake and Vcpkg
- Examples available
- Build and run tests with CMake