BGL Bundled Properties add_edge "Нет подходящей функции" - PullRequest
2 голосов
/ 27 января 2011

Я создал структуру и использовал ее в качестве параметра шаблона для adjacency_list.Тем не менее, когда я пытаюсь добавить add_edge (vertex1, vertex2, property, graph), компилятор жалуется на "отсутствие вызова соответствующей функции".Кто-нибудь может увидеть, где я ошибся здесь?

#include <iostream>
#include <boost/graph/adjacency_list.hpp>

// Create a struct to hold several properties
struct MyProperty
{
  int MyIntProperty;
};

// Define the type of the graph
typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS, MyProperty> Graph;

int main(int,char*[])
{
  // Create a graph object
  Graph g(2);

  // Add an edge between node 0 and node 1 with weight 1.2
  MyProperty p;
  p.MyIntProperty = 5;
  std::cout << p.MyIntProperty << std::endl;
  add_edge(0, 1, p, g);

  return 0;
}

Спасибо,

Дэвид

1 Ответ

4 голосов
/ 27 января 2011

В этом коде MyProperty объявляется как свойство вершины, а не как свойство ребра, поэтому вставлять ребра с этим свойством не имеет смысла.Попробуйте добавить boost::no_property перед MyProperty в вашем adjacency_list typedef.

...