如何解决无法使用 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 举报,一经查实,本站将立刻删除。