Changeset 1492:0d58f0301923 in lemon-0.x for lemon/lemon_writer.h
- Timestamp:
- 06/15/05 12:10:59 (19 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@1973
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/lemon_writer.h
r1476 r1492 56 56 struct Constraints { 57 57 void constraints() { 58 const Item item;59 58 bool b = writer.isIdWriter(); 60 59 ignore_unused_variable_warning(b); … … 63 62 _ItemIdWriter& writer; 64 63 std::ostream& os; 64 const Item& item; 65 }; 66 67 }; 68 69 template <typename Item> 70 class ItemWriter { 71 public: 72 73 void write(std::ostream&, const Item&) {} 74 75 template <class _ItemWriter> 76 struct Constraints { 77 void constraints() { 78 writer.write(os, item); 79 } 80 _ItemWriter& writer; 81 std::ostream& os; 82 const Item& item; 65 83 }; 66 84 … … 353 371 NodeSetWriter& writeNodeMap(std::string name, const Map& map, 354 372 const Writer& writer = Writer()) { 355 checkConcept<concept::WriteMap<Node, typename Map::Value>, Map>(); 373 checkConcept<concept::ReadMap<Node, typename Map::Value>, Map>(); 374 checkConcept<_writer_bits::ItemWriter<typename Map::Value>, Writer>(); 356 375 writers.push_back( 357 376 make_pair(name, new MapWriter<Node, Map, Writer>(map, writer))); … … 518 537 EdgeSetWriter& writeEdgeMap(std::string name, const Map& map, 519 538 const Writer& writer = Writer()) { 520 checkConcept<concept::WriteMap<Edge, typename Map::Value>, Map>(); 539 checkConcept<concept::ReadMap<Edge, typename Map::Value>, Map>(); 540 checkConcept<_writer_bits::ItemWriter<typename Map::Value>, Writer>(); 521 541 writers.push_back( 522 542 make_pair(name, new MapWriter<Edge, Map, Writer>(map, writer))); … … 699 719 UndirEdgeSetWriter& writeUndirEdgeMap(std::string name, const Map& map, 700 720 const Writer& writer = Writer()) { 701 checkConcept<concept::WriteMap<UndirEdge, typename Map::Value>, Map>(); 721 checkConcept<concept::ReadMap<UndirEdge, typename Map::Value>, Map>(); 722 checkConcept<_writer_bits::ItemWriter<typename Map::Value>, Writer>(); 702 723 writers.push_back( 703 724 make_pair(name, new MapWriter<UndirEdge, Map, Writer>(map, writer))); … … 710 731 template <typename Map> 711 732 UndirEdgeSetWriter& writeEdgeMap(std::string name, const Map& map) { 712 checkConcept<concept::WriteMap<Edge, typename Map::Value>, Map>(); 713 writeUndirEdgeMap("+" + name, composeMap(forwardMap(graph), map)); 714 writeUndirEdgeMap("-" + name, composeMap(backwardMap(graph), map)); 715 return *this; 733 return writeEdgeMap<typename Traits:: 734 template Writer<typename Map::Value>, Map>(name, map); 716 735 } 717 736 … … 722 741 UndirEdgeSetWriter& writeEdgeMap(std::string name, const Map& map, 723 742 const Writer& writer = Writer()) { 724 checkConcept<concept::WriteMap<Edge, typename Map::Value>, Map>(); 743 checkConcept<concept::ReadMap<Edge, typename Map::Value>, Map>(); 744 checkConcept<_writer_bits::ItemWriter<typename Map::Value>, Writer>(); 725 745 writeUndirEdge("+" + name, composeMap(forwardMap(graph), map), writer); 726 746 writeUndirEdge("-" + name, composeMap(backwardMap(graph), map), writer); … … 1161 1181 const Value& value, 1162 1182 const Writer& writer = Writer()) { 1183 checkConcept<_writer_bits::ItemWriter<Value>, Writer>(); 1163 1184 writers.push_back(make_pair(name, new ValueWriter<Value, Writer> 1164 1185 (value, writer)));
Note: See TracChangeset
for help on using the changeset viewer.