# # # patch "ChangeLog" # from [d38462b2f1ea0fa7e7322e216b448c31bb98f810] # to [0f1ecb08fe6d925a92005ced313f4b61c6246371] # # patch "cset.cc" # from [7596f4bf16c8591f073c6c18df29668474c499c8] # to [ac5f2a4848a4c5661496ec4f5af706de1fb6a454] # # patch "cset.hh" # from [077036ac38849e3b74dcdce595fdb5ee2762f282] # to [f2d58803ea89b51b5029a349c30acc3c6c3cf580] # # patch "paths.cc" # from [f5e27ba6d46c0f26db552d0e1a78641bc4083cff] # to [c13e9b0c44a37a70e6c7e6d5c8b8869e363ccab9] # # patch "paths.hh" # from [727b9cfba7c9d150dfd7144d0d38744beb8dda7f] # to [054a74b153b42a34140f2776f468bf79c844fa64] # # patch "revision.cc" # from [8cda143f1b14ea5d67e40c9dc325b5ec6f2fd1a7] # to [6640272c7839f8489f1fe23813d7c520afc87d02] # # patch "revision.hh" # from [5e3733994a6c92c4f15f0d78aa26669458443d46] # to [1031cee8580d55528f5fb80e754fbf6e43dedb25] # # patch "roster.cc" # from [e1c0e9fe71f80b5bd457801d3cf4eb3240872c22] # to [4547e72b235da17471b9781c3416e7eac2904027] # # patch "roster.hh" # from [6811b78a4a979e2146ba44e6c3a3023dec0b4c53] # to [0f6d33d17d3d1c804be21f2e8025d86e47f087f9] # # patch "sanity.cc" # from [7b7dd4d379a294fa3d79c0bb0f39dde2ae48d315] # to [b31758131617cacbc373a95c25cab49e15ffedc3] # # patch "sanity.hh" # from [ae8401c8dc9afd96ed17ebdb5362fa3cf735d405] # to [3d91a4abd21f2af06ea78724a922b3b52fa0838f] # # patch "vocab.cc" # from [084a7a4538c3e0b062b901d0ba891fd6b66cfdfe] # to [c3824a3441b679e4e8c2c8f29fa412bcf2d2d1c3] # # patch "vocab.hh" # from [596953ad6326b68846702a85c22977f434e760e9] # to [018407f5255129c875a8ccdfaae93c2645d1ac05] # ============================================================ --- ChangeLog d38462b2f1ea0fa7e7322e216b448c31bb98f810 +++ ChangeLog 0f1ecb08fe6d925a92005ced313f4b61c6246371 @@ -1,3 +1,8 @@ +2006-02-12 Matthew Gregan + + * {cset,paths,revision,roster,sanity,vocab}.{cc,hh}: GCC 4.1 + compile fixes. + 2006-02-10 Derek Scherger * tests/t_drop_missing.at: ============================================================ --- cset.cc 7596f4bf16c8591f073c6c18df29668474c499c8 +++ cset.cc ac5f2a4848a4c5661496ec4f5af706de1fb6a454 @@ -461,7 +461,7 @@ I(src.lookahead == EOF); } -void +template <> void dump(cset const & cs, std::string & out) { data dat; ============================================================ --- cset.hh 077036ac38849e3b74dcdce595fdb5ee2762f282 +++ cset.hh f2d58803ea89b51b5029a349c30acc3c6c3cf580 @@ -123,7 +123,7 @@ void read_cset(data const & dat, cset & cs); -void +template <> void dump(cset const & cs, std::string & out); ============================================================ --- paths.cc f5e27ba6d46c0f26db552d0e1a78641bc4083cff +++ paths.cc c13e9b0c44a37a70e6c7e6d5c8b8869e363ccab9 @@ -302,6 +302,7 @@ } } +template <> void dump(split_path const & sp, std::string & out) { std::ostringstream oss; ============================================================ --- paths.hh 727b9cfba7c9d150dfd7144d0d38744beb8dda7f +++ paths.hh 054a74b153b42a34140f2776f468bf79c844fa64 @@ -115,7 +115,7 @@ return pc == the_null_component; } -void dump(split_path const & sp, std::string & out); +template <> void dump(split_path const & sp, std::string & out); // It's possible this will become a proper virtual interface in the future, // but since the implementation is exactly the same in all cases, there isn't ============================================================ --- revision.cc 8cda143f1b14ea5d67e40c9dc325b5ec6f2fd1a7 +++ revision.cc 6640272c7839f8489f1fe23813d7c520afc87d02 @@ -547,7 +547,7 @@ > > parent_roster_map; -void +template <> void dump(parent_roster_map const & prm, std::string & out) { std::ostringstream oss; @@ -1102,7 +1102,7 @@ } }; -void +template <> void dump(current_rev_debugger const & d, std::string & out) { typedef std::multimap >::const_iterator ci; @@ -1565,7 +1565,7 @@ dat = data(oss.str()); } -void +template <> void dump(revision_set const & rev, std::string & out) { data dat; ============================================================ --- revision.hh 5e3733994a6c92c4f15f0d78aa26669458443d46 +++ revision.hh 1031cee8580d55528f5fb80e754fbf6e43dedb25 @@ -90,7 +90,7 @@ return *(i->second); } -void +template <> void dump(revision_set const & rev, std::string & out); void ============================================================ --- roster.cc e1c0e9fe71f80b5bd457801d3cf4eb3240872c22 +++ roster.cc 4547e72b235da17471b9781c3416e7eac2904027 @@ -39,7 +39,7 @@ /////////////////////////////////////////////////////////////////// -void +template <> void dump(full_attr_map_t const & val, std::string & out) { std::ostringstream oss; @@ -50,7 +50,7 @@ out = oss.str(); } -void +template <> void dump(std::set const & revids, std::string & out) { out.clear(); @@ -65,7 +65,7 @@ } } -void +template <> void dump(marking_t const & marking, std::string & out) { std::ostringstream oss; @@ -85,7 +85,7 @@ out = oss.str(); } -void +template <> void dump(marking_map const & markings, std::string & out) { std::ostringstream oss; @@ -238,7 +238,7 @@ return f; } -void +template <> void dump(node_t const & n, std::string & out) { std::ostringstream oss; @@ -792,7 +792,7 @@ i->second = val; } -void +template <> void dump(roster_t const & val, std::string & out) { std::ostringstream oss; @@ -2891,7 +2891,7 @@ node_id curr; }; -static void +template <> void dump(int const & i, std::string & out) { out = lexical_cast(i) + "\n"; @@ -3194,7 +3194,7 @@ scalar_none, scalar_none_2 } scalar_val; void - dump(scalar_val val, std::string & out) + dump(scalar_val const & val, std::string & out) { switch (val) { ============================================================ --- roster.hh 6811b78a4a979e2146ba44e6c3a3023dec0b4c53 +++ roster.hh 0f6d33d17d3d1c804be21f2e8025d86e47f087f9 @@ -53,7 +53,7 @@ typedef std::map dir_map; typedef std::map node_map; -void dump(full_attr_map_t const & val, std::string & out); +template <> void dump(full_attr_map_t const & val, std::string & out); struct node @@ -143,7 +143,7 @@ return f; } -void dump(node_t const & n, std::string & out); +template <> void dump(node_t const & n, std::string & out); struct marking_t { @@ -164,8 +164,8 @@ typedef std::map marking_map; void dump(std::set & revids, std::string & out); -void dump(marking_t const & marking, std::string & out); -void dump(marking_map const & marking_map, std::string & out); +template <> void dump(marking_t const & marking, std::string & out); +template <> void dump(marking_map const & marking_map, std::string & out); namespace basic_io { struct printer; struct parser; } @@ -242,7 +242,7 @@ // place, if you were just going to put them back! this checking verifies // that csets are in normalized form. std::map > old_locations; - friend void dump(roster_t const & val, std::string & out); + template friend void dump(T const & val, std::string & out); }; struct temp_node_id_source @@ -253,7 +253,7 @@ node_id curr; }; -void dump(roster_t const & val, std::string & out); +template <> void dump(roster_t const & val, std::string & out); struct app_state; struct revision_set; ============================================================ --- sanity.cc 7b7dd4d379a294fa3d79c0bb0f39dde2ae48d315 +++ sanity.cc b31758131617cacbc373a95c25cab49e15ffedc3 @@ -289,7 +289,7 @@ } } -void +template <> void dump(std::string const & obj, std::string & out) { out = obj; ============================================================ --- sanity.hh ae8401c8dc9afd96ed17ebdb5362fa3cf735d405 +++ sanity.hh 3d91a4abd21f2af06ea78724a922b3b52fa0838f @@ -279,8 +279,6 @@ T const & obj; }; -void dump(std::string const & obj, std::string & out); - // The header line must be printed into the "out" string before // dump() is called. // This is so that even if the call to dump() throws an error, @@ -316,4 +314,6 @@ #define MM(obj) /* */ #endif +template <> void dump(std::string const & obj, std::string & out); + #endif // __SANITY_HH__ ============================================================ --- vocab.cc 084a7a4538c3e0b062b901d0ba891fd6b66cfdfe +++ vocab.cc c3824a3441b679e4e8c2c8f29fa412bcf2d2d1c3 @@ -201,6 +201,7 @@ ty const & a) \ { return (o << a.s); } \ \ +template <> \ void dump(ty const & obj, std::string & out) \ { out = obj(); } \ \ ============================================================ --- vocab.hh 596953ad6326b68846702a85c22977f434e760e9 +++ vocab.hh 018407f5255129c875a8ccdfaae93c2645d1ac05 @@ -17,6 +17,10 @@ // generally describe the "vocabulary" (nouns anyways) that modules in this // program use. +template +void dump(T const &, std::string &); + + #define ENCODING(enc) \ \ template \ @@ -111,6 +115,7 @@ }; \ }; \ std::ostream & operator<<(std::ostream &, ty const &); \ +template <> \ void dump(ty const &, std::string &); #define ATOMIC_NOVERIFY(ty) \