Boost logo

Boost Users :

Subject: [Boost-users] [Graph] compilation error under Windows but not under Linux
From: Gaël de Chalendar (Gael.de-Chalendar_at_[hidden])
Date: 2011-11-22 05:24:48


Hello,

I have a compilation error under Windows (Visual C++ 2008) with a code that
works well under Linux (gcc 4.6.1 and before).

The compilation error is:
===========
/FsaAccess16.tcc(833) : error C2784:
'std::pair<graph_traits<G>::in_edge_iterator,graph_traits<G>::in_edge_iterator>
boost::in_edges(graph_traits<G>::vertex_descriptor,const
boost::subgraph<Graph> &)'ÿ: impossible de d‚duire l'argument modŠle pour
'const boost::subgraph<Graph> &' … partir de
'FrCeaLic2m::Common::FsaAccess::selected_graph_types16::spareGraphType'
        C:\PROGRA~1\boost\BOOST_~1\boost/graph/subgraph.hpp(432)ÿ: voir la
d‚claration de 'boost::in_edges'
        Z:
\Projets\MoteurMultimedia\mm_common\src\common/FsaAccess/FsaAccess16.tcc(778)ÿ:
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
        z:
\projets\moteurmultimedia\mm_common\src\common\fsaaccess\FsaAccessReader16.h(118)ÿ:
voir la r‚f‚rence … l'instanciation de la classe modŠle
'FrCeaLic2m::Common::FsaAccess::FsaAccess16<graphType>' en cours de
compilation
        with
        [
            graphType=FrCeaLic2m::Common::FsaAccess::selected_graph_types16::spareGraphType
        ]
        z:
\projets\moteurmultimedia\mm_common\src\common\fsaaccess\FsaAccessSpare16.h(35)ÿ:
voir la r‚f‚rence … l'instanciation de la classe modŠle
'FrCeaLic2m::Common::FsaAccess::FsaAccessReader16<graphType>' en cours de
compilation
        with
        [
            graphType=FrCeaLic2m::Common::FsaAccess::selected_graph_types16::spareGraphType
        ]
===========

The line that does not compile is
boost::tie(iei,ie_end) = boost::in_edges(commonTarget,m_graph);

The function being compiled is declared like that:
template <typename graphType >
std::pair<
 const typename boost::graph_traits<graphType>::vertex_descriptor,
 bool > FsaAccess16<graphType>::findEquivalentInRegister( dicoVertexType
tempState ){
...

And here graphType, the type of m_graph is spareGraphType defined by:
struct selected_graph_types16
{
...
  typedef boost::adjacency_list<boost::vecS,
                                         boost::vecS,
                                         boost::directedS,
                                         dicoVertexCountProperty> spareGraphType;
...

This is a cmake based project that I compile using qtcreator. I'm a Linux
developer and I'm a little bit lost with VC outputs and tools under Windows...

Regards,

Gaêl

-- 
Gael de Chalendar
CEA LIST
Centre de Fontenay-aux-Roses
Laboratoire Vision et Ingénierie des Contenus
(Vision and Content Engineering Laboratory)
Bat. 38-2 ; 18, rue du Panorama ; BP 6
92265 Fontenay aux Roses Cedex ; France
Tél.:01.46.54.80.18 ; Fax.:01.46.54.75.80
Email : Gael.D.O.T.de-Chalendar.A_at_[hidden]

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net