What's Changed
New Features
- Added extension
basic_facade_builder::support_rtti
(enablingproxy_typeid
andproxy_cast
) for RTTI support as per @qq978358810 and @xuruilong100's feedback. - Added extensions
observer_facade
,proxy_view
andbasic_facade_builder::add_view
for non-owningproxy
types as per @Shuenhoy's feedback. - Added extensions
std::formatter<proxy_indirect_accessor>
andbasic_facade_builder::support_format
, enablingproxy
to work with standard formatting functions such asstd::format
. - Added class template
weak_dispatch
as a replacement of macroPRO_DEF_WEAK_DISPATCH
(deprecated since 3.2). - Added class template
proxy_indirect_accessor
, representing the dereferenced state of aproxy
object.
Other Notable
- Revised the design of
conversion_dispatch
. In the previous version,conversion_dispatch
was designed as a class template. It has been updated into 2 concrete typesexplicit_conversion_dispatch
(aka.conversion_dispatch
) andimplicit_conversion_dispatch
without a template. - Revised the design of
proxy_invoke
andproxy_reflect
. - Fixed bug #219: ADL for free function accessors was broken for qualified overload resolution.
- Fixed bug #222:
std::in_place_type_t
overload resolution was broken when a dispatch is not SFINAE-safe.
Full Changelog
- Improve the release pipeline by @tian-lt in #210
- Update CMakeLists.txt to the latest version by @tian-lt in #211
- Revise design of
conversion_dispatch
by @mingxwa in #212 - Suppress unexpected compiler warnings by @mingxwa in #215
- Fix ADL for free function accessors by @mingxwa in #220
- Fix typo in
implicit_conversion_dispatch.md
by @mingxwa in #216 - Add support for
proxy_view
and complementary infrastructure by @mingxwa in #218 - Add direct support for RTTI by @mingxwa in #221
- Fix the
std::in_place_type_t
overload for SFINAE-unsafe facades by @mingxwa in #223 - Replace macro
PRO_DEF_WEAK_DISPATCH
with class templateweak_dispatch
by @mingxwa in #224 - Simplify
proxy_invoke
andproxy_reflect
by @mingxwa in #226 - Feature: Support for
std::format
by @mingxwa in #228 - Revise spec for version 3.2 by @mingxwa in #231