typedef boost::adjacency_list<
boost::vecS, boost::vecS, boost::directedS, NodeInfo, EdgeInfo> Graph;
Graph g(10);
EdgeInfo be;
add_edge(0,1,be,g);
错误: 使用已删除的函数&#39; boost :: detail :: stored_edge_property
改变&#34;无向&#34;指导&#34;指导&#34;导致linux(gcc / 4.9.2)下的错误,同时在windows visual studio express 2013上编译好。提升:1.59.0。
罪魁祸首似乎是add_edge
有快速解决方法吗?
一些论坛指出BGL与C ++ 11不兼容,要求编码人员恢复到C ++ 03。还有其他选择吗?
由于
答案 0 :(得分:1)
我认为没问题:
使用以下图表:
#include <boost/graph/adjacency_list.hpp>
struct NodeInfo { };
struct EdgeInfo { };
int main() {
using namespace boost;
{
typedef adjacency_list<vecS, vecS, directedS, NodeInfo, EdgeInfo> Graph;
Graph g(10);
}
{
typedef adjacency_list<vecS, vecS, undirectedS, NodeInfo, EdgeInfo> Graph;
Graph g(10);
}
}
这告诉我你的NodeInfo / EngeInfo类型可能存在问题。如果它们不可复制等,则可能导致错误。 MSVC可能比标准要求更宽松(它们经常出现在名称查找和引用绑定区域)。