Skip to content

Commit 4c52a1a

Browse files
committed
decltype
1 parent 7b1c4a0 commit 4c52a1a

File tree

1 file changed

+1
-13
lines changed

1 file changed

+1
-13
lines changed

libcxx/include/__algorithm/generate.h

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,10 @@
1919

2020
_LIBCPP_BEGIN_NAMESPACE_STD
2121

22-
template <class _Generator>
23-
struct __generate_assigner {
24-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __generate_assigner(_Generator& __gen) : __gen_(__gen) {}
25-
26-
template <class _Tp>
27-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void operator()(_Tp&& __element) const {
28-
std::forward<_Tp>(__element) = __gen_();
29-
}
30-
31-
_Generator& __gen_;
32-
};
33-
3422
template <class _ForwardIterator, class _Generator>
3523
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
3624
generate(_ForwardIterator __first, _ForwardIterator __last, _Generator __gen) {
37-
std::for_each(__first, __last, __generate_assigner<_Generator>(__gen));
25+
std::for_each(__first, __last, [&](decltype(*__first) __element) { __element = __gen(); });
3826
}
3927

4028
_LIBCPP_END_NAMESPACE_STD

0 commit comments

Comments
 (0)