1 | /// "minimal" example using dynamic_properties after including dynamic_bitset, forcing operator>> into std, compiles again
|
---|
2 |
|
---|
3 | #include <boost/shared_ptr.hpp>
|
---|
4 | #include <boost/graph/adjacency_list.hpp>
|
---|
5 | #include <boost/graph/graphviz.hpp>
|
---|
6 |
|
---|
7 | /// this is the bad include
|
---|
8 | #include <boost/dynamic_bitset.hpp>
|
---|
9 |
|
---|
10 | typedef boost::shared_ptr<int> my_t;
|
---|
11 |
|
---|
12 | /// commented out
|
---|
13 | //inline std::istream& operator>> (std::istream& is, my_t&) { return is; }
|
---|
14 |
|
---|
15 | /// we have to force operator>> into namespace std when we include dynamic_bitset!
|
---|
16 | namespace std {
|
---|
17 | inline std::istream& operator>> (std::istream& is, my_t&) { return is; }
|
---|
18 | }
|
---|
19 |
|
---|
20 |
|
---|
21 | typedef boost::property< boost::graph_name_t, my_t > graph_p;
|
---|
22 | typedef boost::adjacency_list < boost::vecS, boost::vecS, boost::directedS,
|
---|
23 | boost::no_property, boost::no_property, graph_p > graph_t;
|
---|
24 |
|
---|
25 | typedef boost::ref_property_map<graph_t*, my_t> gname_p;
|
---|
26 |
|
---|
27 | int main()
|
---|
28 | {
|
---|
29 | graph_t g(0);
|
---|
30 | boost::dynamic_properties dp;
|
---|
31 | gname_p gname(boost::get_property(g, boost::graph_name));
|
---|
32 | dp.property("name", gname);
|
---|
33 | }
|
---|
34 |
|
---|
35 | // Local Variables:
|
---|
36 | // mode: C++
|
---|
37 | // End:
|
---|