@@ -1535,6 +1535,8 @@ _NODISCARD void* _Function_new_large(_CTypes&&... _Args) {
15351535template <class _Rx, bool _Noexcept, class... _Types>
15361536class _Move_only_function_base {
15371537public:
1538+ using result_type = _Rx;
1539+
15381540 struct _Impl_t { // A per-callable-type structure acting as a virtual function table.
15391541 // Using vtable emulations gives more flexibility for optimizations and reduces the amount of RTTI data.
15401542 // (The RTTI savings may be significant as with lambdas and binds there may be many distinct callable types.
@@ -1719,8 +1721,6 @@ class _Move_only_function_call {
17191721template <class _Rx, class... _Types>
17201722class _Move_only_function_call<_Rx(_Types...)> : public _Move_only_function_base<_Rx, false, _Types...> {
17211723public:
1722- using result_type = _Rx;
1723-
17241724 template <class _Vt>
17251725 using _VtInvQuals = _Vt&;
17261726
@@ -1736,8 +1736,6 @@ public:
17361736template <class _Rx, class... _Types>
17371737class _Move_only_function_call<_Rx(_Types...) &> : public _Move_only_function_base<_Rx, false, _Types...> {
17381738public:
1739- using result_type = _Rx;
1740-
17411739 template <class _Vt>
17421740 using _VtInvQuals = _Vt&;
17431741
@@ -1752,8 +1750,6 @@ public:
17521750template <class _Rx, class... _Types>
17531751class _Move_only_function_call<_Rx(_Types...) &&> : public _Move_only_function_base<_Rx, false, _Types...> {
17541752public:
1755- using result_type = _Rx;
1756-
17571753 template <class _Vt>
17581754 using _VtInvQuals = _Vt&&;
17591755
@@ -1768,8 +1764,6 @@ public:
17681764template <class _Rx, class... _Types>
17691765class _Move_only_function_call<_Rx(_Types...) const> : public _Move_only_function_base<_Rx, false, _Types...> {
17701766public:
1771- using result_type = _Rx;
1772-
17731767 template <class _Vt>
17741768 using _VtInvQuals = const _Vt&;
17751769
@@ -1785,8 +1779,6 @@ public:
17851779template <class _Rx, class... _Types>
17861780class _Move_only_function_call<_Rx(_Types...) const&> : public _Move_only_function_base<_Rx, false, _Types...> {
17871781public:
1788- using result_type = _Rx;
1789-
17901782 template <class _Vt>
17911783 using _VtInvQuals = const _Vt&;
17921784
@@ -1801,8 +1793,6 @@ public:
18011793template <class _Rx, class... _Types>
18021794class _Move_only_function_call<_Rx(_Types...) const&&> : public _Move_only_function_base<_Rx, false, _Types...> {
18031795public:
1804- using result_type = _Rx;
1805-
18061796 template <class _Vt>
18071797 using _VtInvQuals = const _Vt&&;
18081798
@@ -1818,8 +1808,6 @@ public:
18181808template <class _Rx, class... _Types>
18191809class _Move_only_function_call<_Rx(_Types...) noexcept> : public _Move_only_function_base<_Rx, true, _Types...> {
18201810public:
1821- using result_type = _Rx;
1822-
18231811 template <class _Vt>
18241812 using _VtInvQuals = _Vt&;
18251813
@@ -1835,8 +1823,6 @@ public:
18351823template <class _Rx, class... _Types>
18361824class _Move_only_function_call<_Rx(_Types...) & noexcept> : public _Move_only_function_base<_Rx, true, _Types...> {
18371825public:
1838- using result_type = _Rx;
1839-
18401826 template <class _Vt>
18411827 using _VtInvQuals = _Vt&;
18421828
@@ -1851,8 +1837,6 @@ public:
18511837template <class _Rx, class... _Types>
18521838class _Move_only_function_call<_Rx(_Types...) && noexcept> : public _Move_only_function_base<_Rx, true, _Types...> {
18531839public:
1854- using result_type = _Rx;
1855-
18561840 template <class _Vt>
18571841 using _VtInvQuals = _Vt&&;
18581842
@@ -1867,8 +1851,6 @@ public:
18671851template <class _Rx, class... _Types>
18681852class _Move_only_function_call<_Rx(_Types...) const noexcept> : public _Move_only_function_base<_Rx, true, _Types...> {
18691853public:
1870- using result_type = _Rx;
1871-
18721854 template <class _Vt>
18731855 using _VtInvQuals = const _Vt&;
18741856
@@ -1885,8 +1867,6 @@ template <class _Rx, class... _Types>
18851867class _Move_only_function_call<_Rx(_Types...) const & noexcept>
18861868 : public _Move_only_function_base<_Rx, true, _Types...> {
18871869public:
1888- using result_type = _Rx;
1889-
18901870 template <class _Vt>
18911871 using _VtInvQuals = const _Vt&;
18921872
@@ -1902,8 +1882,6 @@ template <class _Rx, class... _Types>
19021882class _Move_only_function_call<_Rx(_Types...) const && noexcept>
19031883 : public _Move_only_function_base<_Rx, true, _Types...> {
19041884public:
1905- using result_type = _Rx;
1906-
19071885 template <class _Vt>
19081886 using _VtInvQuals = const _Vt&&;
19091887
0 commit comments