# # # patch "ChangeLog" # from [0f1404eed1dce6df48cdab5de2a21349a6f66e31] # to [4c560b26b5ca022488b4525ed7bdc1d908664d8b] # # patch "sanity.hh" # from [3d91a4abd21f2af06ea78724a922b3b52fa0838f] # to [88009f27365f17c86b8dd104021fbcc1cc08a497] # ============================================================ --- ChangeLog 0f1404eed1dce6df48cdab5de2a21349a6f66e31 +++ ChangeLog 4c560b26b5ca022488b4525ed7bdc1d908664d8b @@ -1,3 +1,8 @@ +2006-02-21 Matthew Gregan + + * sanity.hh: Work around roster_merge.cc compilation failure with + GCC 3.4. + 2006-02-20 Richard Levitte * monotone.cc (cpp_main), options.hh, ui.cc (redirect_log_to), ============================================================ --- sanity.hh 3d91a4abd21f2af06ea78724a922b3b52fa0838f +++ sanity.hh 88009f27365f17c86b8dd104021fbcc1cc08a497 @@ -268,15 +268,27 @@ }; +// remove_reference is a workaround for C++ defect #106. template +struct remove_reference { + typedef T type; +}; + +template +struct remove_reference { + typedef typename remove_reference::type type; +}; + + +template class Musing : public MusingI, private MusingBase { public: - Musing(T const & obj, char const * name, char const * file, int line, char const * func) + Musing(typename remove_reference::type const & obj, char const * name, char const * file, int line, char const * func) : MusingBase(name, file, line, func), obj(obj) {} virtual void gasp(std::string & out) const; private: - T const & obj; + typename remove_reference::type const & obj; }; // The header line must be printed into the "out" string before