微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用 C++Builder 编译 boost/graph 示例

如何解决无法使用 C++Builder 编译 boost/graph 示例

我正在使用 C++Builder 10.3.3,并且已经为 Win32 安装了 boost 1.39。我试图从 [Boost Graph Library 快速浏览] 编译一个简单的例子 (https://www.boost.org/doc/libs/1_46_1/libs/graph/doc/quick_tour.html):

#include <iostream>                  // for std::cout
#include <utility>                   // for std::pair
#include <algorithm>                 // for std::for_each
#define BOOST_THREAD_USE_LIB
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/boyer_myrvold_planar_test.hpp>

  using namespace boost;

  int main(int,char*[])
  {
    // create a typedef for the Graph type
    //typedef adjacency_list<vecS,vecS,bidirectionalS> Graph;
    typedef adjacency_list< vecS,undirectedS,property< vertex_index_t,int > >
        Graph;

    // Make convenient labels for the vertices
    enum { A,B,C,D,E,N };
    const int num_vertices = N;
    const char* name = "ABCDE";

    // writing out the edges in the graph
    typedef std::pair<int,int> Edge;
    Edge edge_array[] =
    { Edge(A,B),Edge(A,D),Edge(C,A),Edge(D,C),E),Edge(B,E) };
    const int num_edges = sizeof(edge_array)/sizeof(edge_array[0]);

    // declare a graph object
    Graph g(num_vertices);

    // add the edges to the graph object
    for (int i = 0; i < num_edges; ++i)
      add_edge(edge_array[i].first,edge_array[i].second,g);

    bool is_planar = boyer_myrvold_planarity_test(g);

    if (is_planar)
        std::cout << "Graph is planar!" << std::endl;
    else
        std::cout << "Graph is not planar." << std::endl;


    return 0;
  }

并得到许多类型的错误

[bcc32c 错误] add_const.hpp(33): 未知类型名称“add_const_rebind”。

知道如何解决这个问题吗?我是 boost 和 BGL 的新手...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。