Добавьте ребро к графику с помощью связанного свойства std::reference_wrapperC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Добавьте ребро к графику с помощью связанного свойства std::reference_wrapper

Сообщение Anonymous »

У меня есть boost::adjacency_list со связанным свойством для узлов.

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

    using KinematicGraph =
boost::adjacency_list;
Я пытаюсь добавить край к графику с помощью функции boost::add_edge

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

                                auto from = reinterpret_cast(std::addressof(mapping.from()));
auto to = reinterpret_cast(std::addressof(mapping.to()));

boost::add_edge(vertexMap[from], vertexMap[to], m_simulationObjectsGraph);
где vertexMap — это просто std::unordered_map vertexMap;, который я использую для отслеживания добавленных вершин .
Однако этот код не компилируется.

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

[build] In file included from /home/dev/.conan2/p/b/boosta593711c2d7a0/p/include/boost/graph/adjacency_list.hpp:255:
[build] /home/dev/.conan2/p/b/boosta593711c2d7a0/p/include/boost/graph/detail/adjacency_list.hpp:2453:17: error: call to implicitly-deleted default constructor of 'std::variant'
[build]  2453 |                 bidir_rand_stored_vertex() {}
Я понятия не имею, почему он говорит, что не может создать экземпляр связанного свойства вершины, я не спрашивал об этом.
Если Я удаляю строку add_edge, компилируется нормально.
Вот минимальный пример, показывающий ошибку
https://godbolt.org/z/94bnsj9MP

Подробнее здесь: https://stackoverflow.com/questions/786 ... d-property
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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