@@ -1267,74 +1267,60 @@ template <class D, class O, facade F, class... Args>
12671267[[deprecated(" Use unqualified invoke instead" )]] auto
12681268 proxy_invoke (proxy_indirect_accessor<F>& p, Args&&... args) ->
12691269 typename details::overload_traits<O>::return_type {
1270- return details::invoke_impl<F, false , D, O>(
1271- details::as_proxy<F, details::qualifier_type::lv>(p),
1272- std::forward<Args>(args)...);
1270+ return invoke<D, O>(p, std::forward<Args>(args)...);
12731271}
12741272template <class D , class O , facade F, class ... Args>
12751273[[deprecated(" Use unqualified invoke instead" )]] auto
12761274 proxy_invoke (const proxy_indirect_accessor<F>& p, Args&&... args) ->
12771275 typename details::overload_traits<O>::return_type {
1278- return details::invoke_impl<F, false , D, O>(
1279- details::as_proxy<F, details::qualifier_type::const_lv>(p),
1280- std::forward<Args>(args)...);
1276+ return invoke<D, O>(p, std::forward<Args>(args)...);
12811277}
12821278template <class D , class O , facade F, class ... Args>
12831279[[deprecated(" Use unqualified invoke instead" )]] auto
12841280 proxy_invoke (proxy_indirect_accessor<F>&& p, Args&&... args) ->
12851281 typename details::overload_traits<O>::return_type {
1286- return details::invoke_impl<F, false , D, O>(
1287- details::as_proxy<F, details::qualifier_type::rv>(std::move (p)),
1288- std::forward<Args>(args)...);
1282+ return invoke<D, O>(std::move (p), std::forward<Args>(args)...);
12891283}
12901284template <class D , class O , facade F, class ... Args>
12911285[[deprecated(" Use unqualified invoke instead" )]] auto
12921286 proxy_invoke (const proxy_indirect_accessor<F>&& p, Args&&... args) ->
12931287 typename details::overload_traits<O>::return_type {
1294- return details::invoke_impl<F, false , D, O>(
1295- details::as_proxy<F, details::qualifier_type::const_rv>(std::move (p)),
1296- std::forward<Args>(args)...);
1288+ return invoke<D, O>(std::move (p), std::forward<Args>(args)...);
12971289}
12981290template <class D , class O , facade F, class ... Args>
12991291[[deprecated(" Use unqualified invoke instead" )]] auto
13001292 proxy_invoke (proxy<F>& p, Args&&... args) ->
13011293 typename details::overload_traits<O>::return_type {
1302- return details::invoke_impl<F, true , D, O>(p, std::forward<Args>(args)...);
1294+ return invoke< D, O>(p, std::forward<Args>(args)...);
13031295}
13041296template <class D , class O , facade F, class ... Args>
1305- auto proxy_invoke (const proxy<F>& p, Args&&... args) ->
1297+ [[deprecated(" Use unqualified invoke instead" )]] auto
1298+ proxy_invoke (const proxy<F>& p, Args&&... args) ->
13061299 typename details::overload_traits<O>::return_type {
1307- return details::invoke_impl<F, true , D, O>(p, std::forward<Args>(args)...);
1300+ return invoke< D, O>(p, std::forward<Args>(args)...);
13081301}
13091302template <class D , class O , facade F, class ... Args>
13101303[[deprecated(" Use unqualified invoke instead" )]] auto
13111304 proxy_invoke (proxy<F>&& p, Args&&... args) ->
13121305 typename details::overload_traits<O>::return_type {
1313- return details::invoke_impl<F, true , D, O>(std::move (p),
1314- std::forward<Args>(args)...);
1306+ return invoke<D, O>(std::move (p), std::forward<Args>(args)...);
13151307}
13161308template <class D , class O , facade F, class ... Args>
13171309[[deprecated(" Use unqualified invoke instead" )]] auto
13181310 proxy_invoke (const proxy<F>&& p, Args&&... args) ->
13191311 typename details::overload_traits<O>::return_type {
1320- return details::invoke_impl<F, true , D, O>(std::move (p),
1321- std::forward<Args>(args)...);
1312+ return invoke<D, O>(std::move (p), std::forward<Args>(args)...);
13221313}
13231314
13241315template <class R , facade F>
13251316[[deprecated(" Use unqualified reflect instead" )]] const R&
13261317 proxy_reflect (const proxy_indirect_accessor<F>& p) noexcept {
1327- return static_cast <const details::refl_meta<false , R>&>(
1328- details::proxy_helper::get_meta (
1329- details::as_proxy<F, details::qualifier_type::const_lv>(p)))
1330- .reflector ;
1318+ return reflect<R>(p);
13311319}
13321320template <class R , facade F>
13331321[[deprecated(" Use unqualified reflect instead" )]] const R&
13341322 proxy_reflect (const proxy<F>& p) noexcept {
1335- return static_cast <const details::refl_meta<true , R>&>(
1336- details::proxy_helper::get_meta (p))
1337- .reflector ;
1323+ return reflect<R>(p);
13381324}
13391325
13401326// =============================================================================
0 commit comments