# Known Problems and Workarounds

This is a list of known problems compiling the BGL for different compilers and versions.

1. The `subgraph` adaptor has several known problems:
   - Each instance of subgraph has its own copy of internal vertex and edge properties. Only at the root subgraph are the properties valid.
   - Edge and vertex removal functions are unimplemented.
   - The graph is required to have vertex descriptors of integral type (that are the same as the vertex index). Practically speaking, that means subgraph only applies to adjacency lists with `VertexListS` = `vecS`.
2. The `EdgeListS` parameter to the adjacency list is essentially fixed to `listS`: other selectors are unlikely to work.
3. Using a GraphProperty with adjacency_list may cause a VC++ internal compiler error.
4. Using get(property, graph, edge) may cause a VC++ internal compiler error.
5. "using boost::tie;" may cause VC++ internal compiler error.

## Workarounds

Compiler Warnings on `hash_set` and `hash_map`. Versions of GCC >= 4.3 deprecate these headers and data structures and will emit warnings when compiling the BGL. To suppress these warnings and the hash-based storage selectors define the `BOOST_NO_HASH` prior to including any Boost.Graph headers.

Copyright © 2000-2001 | Jeremy Siek, Indiana University (jsiek@osl.iu.edu) Lie-Quan Lee, Indiana University (llee@cs.indiana.edu) Andrew Lumsdaine, Indiana University (lums@osl.iu.edu)