Добавлены ли какие-либо ограничения на использование типа?
Одним очень существенным ограничением (которое не предполагалось в первоначальной статье) было принятие значения strong_ordering
P0732 в качестве индикатора того, что тип класса может использоваться как не введите параметр шаблона. weak_ordering
недостаточно для этого случая из-за того, как должна работать эквивалентность шаблона.
Как правило, возможно, что некоторые алгоритмы просто требуют weak_ordering
, но другие алгоритмы требуют strong_ordering
, поэтому возможность пометить, что для типа может означать ошибку компиляции (обеспечивается недостаточно сильный порядок) вместо простого отказа выполнить Требования алгоритма во время выполнения и, следовательно, просто неопределенное поведение. Но все алгоритмы в стандартной библиотеке и TS диапазонов, о которых я знаю, просто требуют weak_ordering
. Я не знаю ни одного, который требует strong_ordering
от макушки головы.
Действительно ли это влияет на сгенерированный код?
За исключением случаев, когда требуется strong_ordering
, или алгоритм явно выбирает другое поведение на основе категории сравнения, нет.