Компиляция std :: generator с оптимизацией создает Null-Dereference в GCCC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Компиляция std :: generator с оптимизацией создает Null-Dereference в GCC

Сообщение Anonymous »

cppReference.com приводит пример того, как использовать C ++ 23 std :: Generator.
из https://en.cppreference.com/w/cpp/corou ... rator.html: написано.

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

#include 
#include 

template
struct Tree
{
T value;
Tree *left{}, *right{};

std::generator traverse_inorder() const
{
if (left)
co_yield std::ranges::elements_of(left->traverse_inorder());

co_yield value;

if (right)
co_yield std::ranges::elements_of(right->traverse_inorder());
}
};

int main()
{
Tree tree[]
{
{'D', tree + 1, tree + 2},
//                            │
//            ┌───────────────┴────────────────┐
//            │                                │
{'B', tree + 3, tree + 4},       {'F', tree + 5, tree + 6},
//            │                                │
//  ┌─────────┴─────────────┐      ┌───────────┴─────────────┐
//  │                       │      │                         │
{'A'},                  {'C'}, {'E'},                    {'G'}
};

for (char x : tree->traverse_inorder())
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79703343/compiling-stdgenerator-with-optimization-produces-null-dereference-in-gcc[/url]
Ответить

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

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

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

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

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