template concept IsEqualityComparable = requires(T a, U b) { { a == b } -> std::same_as; { b == a } -> std::same_as; };
static_assert(IsEqualityComparable); // true as expected! static_assert(IsEqualityComparable); // true as expected! static_assert(IsEqualityComparable); // true as expected! static_assert(IsEqualityComparable); // true as expected!
static_assert(std::equality_comparable_with); // true as expected! static_assert(std::equality_comparable_with); // true as expected! static_assert(std::equality_comparable_with); // !!!false!!! why??? static_assert(std::equality_comparable_with); // !!!false!!! why??? [/code] Почему std :: enquality_comparable_with не работает в самых простых случаях? Мне просто интересно:
Зачем ему нужен общий тип для сравнения двух не связанных с ними типов, даже если соответствующий оператор == был хорошо определен?
Я написал приведенный ниже программный код, в который добавляю объекты класса Student3, которые реализуют Comparable to TreeSet. Также я добавил Компаратор в TreeSet. Вызывается ли сравнение с помощью Comparable. или вызывается только сравнение...
Я написал приведенный ниже программный код, в который добавляю объекты класса Student3, которые реализуют Comparable to TreeSet. Также я добавил Компаратор в TreeSet. Вызывается ли сравнение с помощью Comparable. или вызывается только сравнение...
Я написал приведенный ниже программный код, в который добавляю объекты класса Student3, которые реализуют Comparable to TreeSet. Также я добавил Компаратор в TreeSet. Вызывается ли сравнение с помощью Comparable. или вызывается только сравнение...
Некоторые реализации векторов (например, используют 1 бит на бит (в отличие от 8 бит, как в старом std::vector).
Новое В черновиках C++ также есть такие вещи, как std::bitset ( ).
Содержит ли новый черновик C++ разрешить std::map (2-битное значение)...