|
Boost : |
Subject: Re: [boost] [graph] msvc compile failure with filtered_graph and dijkstra
From: Jürgen Hunold (jhunold_at_[hidden])
Date: 2012-10-08 17:13:52
Hi Jeremiah,
On Monday, 8. October 2012 17:02:56 Jeremiah Willcock wrote:
> On Mon, 8 Oct 2012, Jürgen Hunold wrote:
> > Sorry, that does not fix the problem. Same errors as before.
> > You can also send patches if I shall test something for you.
>
> Exactly the same (same "const filtered_graph" stuff in the beginning) as
> before?
Yes, exactly. ediff'ed both logs, new log attached. Sorry, should have attached
it firsthand, it is getting late here.
> > I get the feeling that msvc simply gets confused and fails to recognize
> > the
> > difference between the "struct type" and the nested typedefs also named
> > "x::type". But I might be wrong here and this is a red herring.
>
> It might be related; maybe the compiler is failing to find the member then
> looking for a namespace-scope class instead or something.
Template instantiation magic, sigh. Yes, that seems to be an explanation. I
should dive into "C++ templates" again...
Yours,
Jürgen
-- * Dipl.-Math. Jürgen Hunold ! * voice: ++49 4257 300 ! Fährstraße 1 * fax : ++49 4257 300 ! 31609 Balge/Sebbenhausen * jhunold_at_gmx.eu ! Germany
-*- mode: compilation; default-directory: "e:/Home/hunold/src/test/graph/" -*-
Compilation started at Mon Oct 08 22:51:13
b2 gcc msvc
...patience...
...patience...
...found 1273 targets...
...updating 7 targets...
common.mkdir bin\test_graph.test\gcc-mingw-4.6
common.mkdir bin\test_graph.test\gcc-mingw-4.6\debug
gcc.compile.c++ bin\test_graph.test\gcc-mingw-4.6\debug\test_graph.o
test_graph.cpp: In member function 'void UndirectedGraph::dijkstra(const Evaluator&, const Filter&) const [with Evaluator = LengthEvaluator<UndirectedGraph>, Filter = EdgeFilter<UndirectedGraph>]':
test_graph.cpp:101:5: warning: 'nodeSource' may be used uninitialized in this function [-Wuninitialized]
**passed** bin\test_graph.test\gcc-mingw-4.6\debug\test_graph.test
common.mkdir bin\test_graph.test\msvc-9.0\debug
compile-c-c++ bin\test_graph.test\msvc-9.0\debug\test_graph.obj
test_graph.cpp
E:\Home\hunold\src\devel\boost\boost/graph/properties.hpp(222) : error C2039: 'type' : is not a member of 'boost::vertex_property_type<G>'
with
[
G=const boost::filtered_graph<boost::adjacency_list<boost::setS,boost::vecS,boost::undirectedS,boost::no_property,boost::property<boost::edge_info_t,DataEdge *>>,EdgeFilter<UndirectedGraph>>
]
E:\Home\hunold\src\devel\boost\boost/graph/properties.hpp(233) : see reference to class template instantiation 'boost::detail::vertex_property_map<Graph,PropertyTag>' being compiled
with
[
Graph=const boost::filtered_graph<boost::adjacency_list<boost::setS,boost::vecS,boost::undirectedS,boost::no_property,boost::property<boost::edge_info_t,DataEdge *>>,EdgeFilter<UndirectedGraph>>,
PropertyTag=boost::vertex_index_t
]
E:\Home\hunold\src\devel\boost\boost/graph/named_function_params.hpp(306) : see reference to class template instantiation 'boost::property_map<Graph,Property>' being compiled
with
[
Graph=const boost::filtered_graph<boost::adjacency_list<boost::setS,boost::vecS,boost::undirectedS,boost::no_property,boost::property<boost::edge_info_t,DataEdge *>>,EdgeFilter<UndirectedGraph>>,
Property=boost::vertex_index_t
]
E:\Home\hunold\src\devel\boost\boost/graph/dijkstra_shortest_paths.hpp(480) : see reference to function template instantiation 'boost::vec_adj_list_vertex_id_map<Property,Vertex> boost::choose_const_pmap<boost::param_not_found,VertexListGraph,boost::vertex_index_t>(const Param &,const Graph &,PropertyTag)' being compiled
with
[
Property=boost::no_property,
Vertex=unsigned int,
VertexListGraph=boost::filtered_graph<boost::adjacency_list<boost::setS,boost::vecS,boost::undirectedS,boost::no_property,boost::property<boost::edge_info_t,DataEdge *>>,EdgeFilter<UndirectedGraph>>,
Param=boost::param_not_found,
Graph=boost::filtered_graph<boost::adjacency_list<boost::setS,boost::vecS,boost::undirectedS,boost::no_property,boost::property<boost::edge_info_t,DataEdge *>>,EdgeFilter<UndirectedGraph>>,
PropertyTag=boost::vertex_index_t
]
test_graph.cpp(104) : see reference to function template instantiation 'void boost::dijkstra_shortest_paths<boost::filtered_graph<Graph,EdgePredicate>,Evaluator,boost::edge_weight_t,boost::bgl_named_params<T,Tag,Base>>(const VertexListGraph &,unsigned int,const boost::bgl_named_params<Evaluator,boost::edge_weight_t,boost::bgl_named_params<T,Tag,Base>> &)' being compiled
with
[
Graph=boost::adjacency_list<boost::setS,boost::vecS,boost::undirectedS,boost::no_property,boost::property<boost::edge_info_t,DataEdge *>>,
EdgePredicate=EdgeFilter<UndirectedGraph>,
Evaluator=LengthEvaluator<UndirectedGraph>,
T=unsigned int *,
Tag=boost::vertex_predecessor_t,
Base=boost::no_property,
VertexListGraph=boost::filtered_graph<boost::adjacency_list<boost::setS,boost::vecS,boost::undirectedS,boost::no_property,boost::property<boost::edge_info_t,DataEdge *>>,EdgeFilter<UndirectedGraph>>
]
test_graph.cpp(109) : see reference to function template instantiation 'void UndirectedGraph::dijkstra<LengthEvaluator<Graph>,EdgeFilter<Graph>>(const LengthEvaluator<Graph> &,const EdgeFilter<Graph> &) const' being compiled
with
[
Graph=UndirectedGraph
]
E:\Home\hunold\src\devel\boost\boost/graph/properties.hpp(223) : error C3203: 'type' : unspecialized class template can't be used as a template argument for template parameter 'Property', expected a real type
E:\Home\hunold\src\devel\boost\boost/graph/properties.hpp(223) : error C2955: 'boost::type' : use of class template requires template argument list
E:\Home\hunold\src\devel\boost\boost/type.hpp(14) : see declaration of 'boost::type'
E:\Home\hunold\src\devel\boost\boost/graph/properties.hpp(224) : error C2955: 'boost::detail::dummy_vertex_property_selector::bind_' : use of class template requires template argument list
E:\Home\hunold\src\devel\boost\boost/graph/properties.hpp(173) : see declaration of 'boost::detail::dummy_vertex_property_selector::bind_'
call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86 >nul
cl /Zm800 -nologo @"bin\test_graph.test\msvc-9.0\debug\test_graph.obj.rsp"
...failed compile-c-c++ bin\test_graph.test\msvc-9.0\debug\test_graph.obj...
...failed updating 1 target...
...skipped 1 target...
...updated 5 targets...
Compilation exited abnormally with code 1 at Mon Oct 08 22:51:22
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk