Open
Description
Summary:
C++ standards sets these type preconditions:
Preconditions: For the overloads in namespace std, RandomAccessIterator meets the Cpp17ValueSwappable requirements ([swappable.requirements]) and the type of *first meets the Cpp17MoveConstructible (Table 31) and Cpp17MoveAssignable (Table 33) requirements.
Sort tests do not check if it is sufficient when using a device policy (for example, it does not require CopyConstructible). This check is needed.
There is a TODO in the test: