Следующий код вообще не компилируется из -за (вероятно) рекурсии бесконечности. /> std :: remove_reference :: type & __t, const typename
std :: remove_reference :: type & __u) {{__t decktype (auto)
[tress std :: __ detail: __bolean_testable ; /> __ u} -> decktype (auto) [Tress std :: __ detail :: __ boolean_testable ]; {__ t
decltype (auto) [требуется
std :: __ detail :: __ boolean_testable ]; /> decktype (auto) [tress
std :: __ detail :: __ boolean_testable ]; {__ u
decltype (auto) [tress
std :: __ detail :: __ boolean_testable ]; [Требуется
std :: __ detail :: __ boolean_testable ]; {__ u
decltype (auto) [Tress
std :: __ detail :: __ boolean_testable ]; {__ u> = __t} ->
dectypable ]; {__ u> = __t} /> std :: __ detail :: __ boolean_testable ];} [с _tp =
permutated_iterator 'Заповедите. /> < /blockquote>
Я действительно не понимаю, почему. < /p>
#include
#include
#include
using namespace std;
template
requires (unsigned_integral
&& !is_same_v)
struct permutated_iterator
{
private:
T1 p{}; ///< Permutation vector iterator.
T2 v{}; ///< Permutated vector iterator.
public:
/// Default constructor is needed from std::forward_iterator concept.
constexpr permutated_iterator() = default;
/** Constructor for dense permutated vector iterator.
\param p Permutation vector iterator, pointing in current position of this iterator.
\param v The permutated vector iterator, pointing in start of vector. */
constexpr permutated_iterator(T1 p, T2 v) noexcept : p{p}, v{v} {}
constexpr bool operator==(const permutated_iterator &it) const noexcept { return p == it.p; }
constexpr auto operator(const permutated_iterator &it) const noexcept { return p it.p; }
};
int main()
{
using piter = std::span::iterator;
using viter = std::span::iterator ;
using cpiter = std::basic_const_iterator ;
using iter1 = permutated_iterator ;
using iter2 = permutated_iterator;
static_assert(std::totally_ordered);
static_assert(std::totally_ordered);
static_assert(std::totally_ordered);
static_assert(std::totally_ordered);
static_assert(std::totally_ordered); // PROBLEM!!!!
// this is ok: iter2() == iter2()
// this is not ok: iter2() > iter2()
}
< /code>
обновление < /strong>
Это ошибка G ++. Исправлено в G ++ 15.1.
Подробнее здесь: https://stackoverflow.com/questions/782 ... inside-ano
Проблема с `std ::ally_ordered` и` std :: basic_const_iterator` внутри другого итератора ⇐ C++
Программы на C++. Форум разработчиков
1749098321
Anonymous
Следующий код вообще не компилируется из -за (вероятно) рекурсии бесконечности. /> std :: remove_reference :: type & __t, const typename
std :: remove_reference :: type & __u) {{__t decktype (auto)
[tress std :: __ detail: __bolean_testable ; /> __ u} -> decktype (auto) [Tress std :: __ detail :: __ boolean_testable ]; {__ t
decltype (auto) [требуется
std :: __ detail :: __ boolean_testable ]; /> decktype (auto) [tress
std :: __ detail :: __ boolean_testable ]; {__ u
decltype (auto) [tress
std :: __ detail :: __ boolean_testable ]; [Требуется
std :: __ detail :: __ boolean_testable ]; {__ u
decltype (auto) [Tress
std :: __ detail :: __ boolean_testable ]; {__ u> = __t} ->
dectypable ]; {__ u> = __t} /> std :: __ detail :: __ boolean_testable ];} [с _tp =
permutated_iterator 'Заповедите. /> < /blockquote>
Я действительно не понимаю, почему. < /p>
#include
#include
#include
using namespace std;
template
requires (unsigned_integral
&& !is_same_v)
struct permutated_iterator
{
private:
T1 p{}; ///< Permutation vector iterator.
T2 v{}; ///< Permutated vector iterator.
public:
/// Default constructor is needed from std::forward_iterator concept.
constexpr permutated_iterator() = default;
/** Constructor for dense permutated vector iterator.
\param p Permutation vector iterator, pointing in current position of this iterator.
\param v The permutated vector iterator, pointing in start of vector. */
constexpr permutated_iterator(T1 p, T2 v) noexcept : p{p}, v{v} {}
constexpr bool operator==(const permutated_iterator &it) const noexcept { return p == it.p; }
constexpr auto operator(const permutated_iterator &it) const noexcept { return p it.p; }
};
int main()
{
using piter = std::span::iterator;
using viter = std::span::iterator ;
using cpiter = std::basic_const_iterator ;
using iter1 = permutated_iterator ;
using iter2 = permutated_iterator;
static_assert(std::totally_ordered);
static_assert(std::totally_ordered);
static_assert(std::totally_ordered);
static_assert(std::totally_ordered);
static_assert(std::totally_ordered); // PROBLEM!!!!
// this is ok: iter2() == iter2()
// this is not ok: iter2() > iter2()
}
< /code>
обновление < /strong>
Это ошибка G ++. Исправлено в G ++ 15.1.
Подробнее здесь: [url]https://stackoverflow.com/questions/78276609/a-problem-with-stdtotally-ordered-and-stdbasic-const-iterator-inside-ano[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия