Я изо всех сил пытаюсь сбросить график в потоке, где указанный график является конституированной версией boost::subgraph
.
Я попытался предоставить средство записи свойств но в основном это терпит неудачу, потому что, похоже, требуется метод boost::get(PropertyWriter, VertexDescriptor)
. Используя ту же методологию, где график не, subgraph
работает должным образом.
Как найдено здесь, я использовал boost::dynamic_properties
(см. код ниже), но это терпит неудачу, когда мой график не доступен для записи (тогда как документация указывает, что график взят в качестве постоянной ссылки).
Вот простой пример, который я не могу заставить работать:
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/graphviz.hpp>
#include <boost/graph/subgraph.hpp>
struct VertexProperties
{
std::string name;
};
int main()
{
typedef boost::subgraph<
boost::adjacency_list<
boost::vecS, boost::vecS,
boost::directedS,
boost::property<boost::vertex_index_t, std::size_t, VertexProperties>,
boost::property<boost::edge_index_t, std::size_t> > > Graph;
Graph const g;
boost::dynamic_properties dp;
dp.property("name", boost::get(&VertexProperties::name, g));
dp.property("node_id", boost::get(boost::vertex_index, g));
boost::write_graphviz_dp(std::cout, g, dp);
}
Любая подсказка приветствуется! Большое спасибо,
ИЗМЕНИТЬ
Я забыл упомянуть, что означает «неудача» в моем случае; вот ошибка при попытке скомпилировать:
ошибка: передача «const std::basic_string» в качестве «этого» аргумента «std::basic_string‹_CharT, _Traits, _Alloc>& std::basic_string‹_CharT, _Traits, _Alloc>::operator=(const std::basic_string ‹_CharT, _Traits, _Alloc>&) [с _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator, std::basic_string‹_CharT, _Traits, _Alloc> = std::basic_string]' отбрасывает квалификаторы [ -fразрешительный]