std :: pair,“无效的模板args”错误没有意义

时间:2015-04-08 14:57:52

标签: c++ visual-c++ include mingw std-pair

我正在使用c ++ boost库来构建图形。我必须在Ubuntu和Windows上工作,但是当我的代码在Ubuntu 14.04上运行时,它将无法在Windows 8.1上运行。 我正在使用Eclipse luna作为IDE,但是当我切换到Windows时,我得到的对象是“无效的模板参数错误”:

 std::pair<boost::graph_traits<adjacency_list<> >::edge_descriptor,bool> e;

 typedef graph::adjacency_iterator adj_i;
 std::pair<adj_i,adj_i> adj_v=adjacent_vertices (7,g);

,而

 std::pair<int,int> id_v;

运行顺利。 我尝试使用VC ++工具链和MinGW GCC,但它不起作用。 有什么想法吗?

@迈克尔 当然!

using namespace boost;

int main() {

std::pair<int,int> id_v; //no problem

std::pair<graph_traits<adjacency_list<> >::edge_descriptor,bool> e; //works on linux 
                                                                    //error on windows

typedef boost::graph_traits<adjacency_list<> >::edge_descriptor edge_d;
std::pair<edge_d,bool> e; //error

typedef adjacency_list<multisetS, vecS, directedS> graph;//error

std::pair<graph_traits<graph>::edge_descriptor,bool> e_0;//same
std::pair<graph::edge_descriptor,bool> e_1;//again


return 0;

}

如您所见,这个简单的代码返回错误;我不是一个有升级图的专家,但如果它适用于linux,为什么它不能在这里工作?它表示模板参数无效并返回超过100(!)个错误,如:

'__ int64'没有命名类型;第144行,外部位置:C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ include \ stdio.h C / C ++问题

一个问题。我设置了MinGW工具链;使用VC包含是否正常?也许是微不足道的,但我从未使用过windows进行编程。

感谢大家!

0 个答案:

没有答案