Является ли результат STD :: Ranges :: Сортировка четко определена для диапазонов типов, поддерживающих только partial_oC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Является ли результат STD :: Ranges :: Сортировка четко определена для диапазонов типов, поддерживающих только partial_o

Сообщение Anonymous »

Вот относительно короткий пример: < /p>

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 
#include 

struct Foo {
std::optional oi;
Foo() : oi{} {}
Foo(int i) : oi{i} {}
friend bool operator==(Foo const&, Foo const&) {
// not even invoked by the example
assert(false);
return {};
}
friend std::partial_ordering operator(Foo const& a, Foo const& b) {
return a.oi.has_value() && b.oi.has_value()
? a.oi  b.oi
: std::partial_ordering::unordered;
}
};

int main() {
std::vector v{3, 1, {}, 2, {}, 7, 6, 7, 9, 8, 10};
std::ranges::sort(v);
for (auto i : v) {
if (i.oi) {
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79643866/is-the-result-of-stdrangessort-well-defined-for-ranges-of-types-supporting-o[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»