
On Mon, 8 Oct 2012, Jürgen Hunold wrote:
Hi Jeremiah,
On Monday, 8. October 2012 16:05:30 Jeremiah Willcock wrote:
On Mon, 8 Oct 2012, Jürgen Hunold wrote:
Any ideas what msvc does not grok here?
It looks like VC++ isn't able to deduce that when calling:
template <typename G> ... const G& ...
that G should not be a const-qualified type. Please check if trunk version 80908 works for you (I don't have an easy way to test on Visual C++).
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?
One hint might be the following buried inside the error messages:
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'
<boost/type.hpp> really declares a class template named "type" as follows:
// Just a simple "type envelope". Useful in various contexts, mostly to work // around some MSVC deficiencies. template <class T> struct type {};
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. -- Jeremiah Willcock