Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ошибка "нет подходящей функции"
Форум на CrossPlatform.RU > Библиотеки > boost
brrr
Пишу код из примера A Quick Tour of the Boost Graph Library
  
  #include <iostream>                   // for std::cout
  #include <utility>                       // for std::pair
  #include <algorithm>                 // for std::for_each
  #include <boost/graph/graph_traits.hpp>
  #include <boost/graph/adjacency_list.hpp>
  #include <boost/graph/dijkstra_shortest_paths.hpp>
  using namespace boost;
  
  int main(int,char*[])
  {
  typedef adjacency_list<listS, vecS, directedS,
                         no_property, property<edge_weight_t, int> > Graph;
  typedef graph_traits<Graph>::vertex_descriptor Vertex;
  typedef std::pair<int,int> E;

  const int num_nodes = 5;
  E edges[] = { E(0,2),
                E(1,1), E(1,3), E(1,4),
                E(2,1), E(2,3),
                E(3,4),
                E(4,0), E(4,1) };
  int weights[] = { 1, 2, 1, 2, 7, 3, 1, 1, 1};

  //здесь недоволен
  Graph G(edges + sizeof(edges) / sizeof(E), weights, num_nodes);
  
  return 0;
  }


На что компилятор злобно ругается и пишет
main.cpp:24: ошибка: нет подходящей функции для вызова ‘boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::adjacency_list(main(int, char**)::E*, int [9], const int&)’.
Подскожите, пожалуйста, в чем ошибка?
ViGOur
эта ошибка говорит о том, что ты забыл подключить какой-то файл, в котором определяется одна из используемых функций.
или не обязательно функций, например например не может найти определение property<edge_weight_t, int> или еще какое, прошерсти все ли include подключены...
brrr
Оказалось, что все просто - пропустил запятую
Graph G(edges, edges + sizeof(edges) / sizeof(E), weights, num_nodes);
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.