
But the compiler needs to know about the existence of these functions. There aren't any "most-general" versions defined anywhere. If you're not including a graph implementation, there's no way the compiler can know about the interface.
You might be able to get around this by including the adjacency_matrix.hpp in your .cpp files before the headers that are using
the generic interface.
You're totally right. And thanks for your hint, as I think it is the right way to deal with this "problem?". Now the compiler doesn't complain about any of those functions. But I still get errors I can't find explanation for. Mainly, it complains when using BOOST_CONCEPT_REQUIRES to check for adjacency_matrix implementing BidirectionalGraphConcept. The error follows: /usr/local/include/boost-1_38/boost/concept_check.hpp:207: error: se solicitó la conversión desde ‘boost::adj_matrix_traversal_tag’ al tipo no escalar ‘boost::bidirectional_graph_tag’ In English, it means I asked for conversion from boost::adj_matrix_traversal_tag to nonscalar type boost::bidirectional_graph_tag. copy_graph also complains about not finding a suitable operator= when assigning vertex bundled properties from the adjacency_matrix to an adjacency_list. This is working when assigning from a bidirectional adjacency_list to a directed adjacency_list and, in fact, my vertex property bundle has an explicitly defined operator=, and my edge property bundle keeps the default byte-to-byte operator=. Any hints on what might be happenning? As I said in my last message, I can send the full error listing, if you need it. Thanks again, Juan