Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 0 additions & 14 deletions stl/inc/algorithm
Original file line number Diff line number Diff line change
Expand Up @@ -932,17 +932,10 @@ namespace ranges {
// We've trimmed matching prefixes and matching suffixes.
// Now we need to compare each range's prefix to the other range's suffix.

#ifdef _M_CEE // TRANSITION, VSO-1663257
const auto _ProjectedPred = [&](auto&& _Left, auto&& _Right) -> bool {
return _STD invoke(_Pred, _STD invoke(_Proj1, _STD forward<decltype(_Left)>(_Left)),
_STD invoke(_Proj2, _STD forward<decltype(_Right)>(_Right)));
};
#else // ^^^ workaround / no workaround vvv
const auto _ProjectedPred = [&]<class _Ty1, class _Ty2>(_Ty1&& _Left, _Ty2&& _Right) -> bool {
return _STD invoke(_Pred, _STD invoke(_Proj1, _STD forward<_Ty1>(_Left)),
_STD invoke(_Proj2, _STD forward<_Ty2>(_Right)));
};
#endif // ^^^ no workaround ^^^

const _TrimResult _Res = _Trim_completely(_First1, _Final1, _First2, _Final2, _ProjectedPred);

Expand Down Expand Up @@ -1028,17 +1021,10 @@ namespace ranges {
// We've trimmed matching prefixes and matching suffixes.
// Now we need to compare each range's prefix to the other range's suffix.

#ifdef _M_CEE // TRANSITION, VSO-1663257
const auto _ProjectedPred = [&](auto&& _Left, auto&& _Right) -> bool {
return _STD invoke(_Pred, _STD invoke(_Proj1, _STD forward<decltype(_Left)>(_Left)),
_STD invoke(_Proj2, _STD forward<decltype(_Right)>(_Right)));
};
#else // ^^^ workaround / no workaround vvv
const auto _ProjectedPred = [&]<class _Ty1, class _Ty2>(_Ty1&& _Left, _Ty2&& _Right) -> bool {
return _STD invoke(_Pred, _STD invoke(_Proj1, _STD forward<_Ty1>(_Left)),
_STD invoke(_Proj2, _STD forward<_Ty2>(_Right)));
};
#endif // ^^^ no workaround ^^^

const _TrimResult _Res = _Trim_completely(_First1, _Final1, _First2, _Final2, _ProjectedPred);

Expand Down
12 changes: 7 additions & 5 deletions stl/inc/bitset
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ public:
friend bitset<_Bits>;

public:
_CONSTEXPR23 reference(const reference&) = default;

_CONSTEXPR23 ~reference() noexcept {} // TRANSITION, ABI

_CONSTEXPR23 reference& operator=(const bool _Val) noexcept {
Expand All @@ -44,11 +46,6 @@ public:
return *this;
}

_CONSTEXPR23 reference& flip() noexcept {
_Pbitset->_Flip_unchecked(_Mypos);
return *this;
}

_NODISCARD _CONSTEXPR23 bool operator~() const noexcept {
return !_Pbitset->_Subscript(_Mypos);
}
Expand All @@ -57,6 +54,11 @@ public:
return _Pbitset->_Subscript(_Mypos);
}

_CONSTEXPR23 reference& flip() noexcept {
_Pbitset->_Flip_unchecked(_Mypos);
return *this;
}

private:
_CONSTEXPR23 reference() noexcept : _Pbitset(nullptr), _Mypos(0) {}

Expand Down
5 changes: 0 additions & 5 deletions stl/inc/format
Original file line number Diff line number Diff line change
Expand Up @@ -1960,12 +1960,7 @@ public:
_NODISCARD size_t _Estimate_required_capacity() const noexcept {
using _CharT = typename _Context::char_type;
size_t _Result = 0;
#ifdef _M_CEE // TRANSITION, VSO-1663257
const auto _Visitor = [&_Result](const auto _Arg) noexcept {
using _ArgTy = remove_const_t<decltype(_Arg)>;
#else // ^^^ workaround / no workaround vvv
const auto _Visitor = [&_Result]<class _ArgTy>(const _ArgTy _Arg) noexcept {
#endif // ^^^ no workaround ^^^
if constexpr (is_same_v<_ArgTy, basic_string_view<_CharT>>) {
_Result += _Arg.size();
} else if constexpr (is_same_v<_ArgTy, const _CharT*>) {
Expand Down
4 changes: 2 additions & 2 deletions stl/inc/iterator
Original file line number Diff line number Diff line change
Expand Up @@ -187,13 +187,13 @@ public:
constexpr move_sentinel() = default;

constexpr explicit move_sentinel(_Se _Val) noexcept(is_nothrow_move_constructible_v<_Se>) // strengthened
: _Last{_STD move(_Val)} {}
: _Last(_STD move(_Val)) {}

template <class _Se2>
requires convertible_to<const _Se2&, _Se>
constexpr move_sentinel(const move_sentinel<_Se2>& _Val) noexcept(
is_nothrow_constructible_v<_Se, const _Se2&>) // strengthened
: _Last{_Val._Get_last()} {}
: _Last(_Val._Get_last()) {}

template <class _Se2>
requires assignable_from<_Se&, const _Se2&>
Expand Down
Loading