The std::ranges::view
concept in C++23 requires a view to be movable, which includes move-assignability. I understand why we want a view to be move-constructible, but why is the assignment necessary?
I ask because it seems that the assignability complicates things, i.e., range adaptors need the movable-box, which is exposition-only. Programmers thus need to implement it themselves to write their adaptors that hold function objects.
(I have tried looking at the original proposals but could not find any rationale specific for the move assignment.)