|
From: Tobias S. <t_s...@us...> - 2005-04-12 19:23:44
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/future In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv519/adobe-source/adobe/future Modified Files: memory.hpp Log Message: Adds fixes needed to compile with GCC 3.4 (template "disambiguation" to work around a parser bug and a missing "typename" keyword). Index: memory.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/memory.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** memory.hpp 30 Mar 2005 17:15:54 -0000 1.2 --- memory.hpp 12 Apr 2005 19:23:07 -0000 1.3 *************** *** 164,168 **** static lht runtime_cast (std::auto_ptr<T>& x) { ! lht::element_type* result = dynamic_cast<typename lht::element_type*>(x.get()); if (result) x.release(); return lht(result); --- 164,169 ---- static lht runtime_cast (std::auto_ptr<T>& x) { ! typedef typename lht::element_type* dest_type; ! dest_type result = dynamic_cast<dest_type>(x.get()); if (result) x.release(); return lht(result); *************** *** 182,186 **** static lht runtime_cast (adobe::auto_ptr<T, Traits>& x) { ! lht::element_type* result = dynamic_cast<typename lht::element_type*>(x.get()); if (result) x.release(); return lht(result); --- 183,188 ---- static lht runtime_cast (adobe::auto_ptr<T, Traits>& x) { ! typedef typename lht::element_type* dest_type; ! dest_type result = dynamic_cast<dest_type>(x.get()); if (result) x.release(); return lht(result); *************** *** 200,204 **** static lht runtime_cast (adobe::auto_resource<T, Traits>& x) { ! lht::element_type* result = dynamic_cast<typename lht::element_type*>(x.get()); if (result) x.release(); return lht(result); --- 202,207 ---- static lht runtime_cast (adobe::auto_resource<T, Traits>& x) { ! typedef typename lht::element_type* dest_type; ! dest_type result = dynamic_cast<dest_type>(x.get()); if (result) x.release(); return lht(result); *************** *** 264,271 **** auto_resource(auto_resource&) throw(); ! template <typename Y> auto_resource(auto_resource<Y, typename traits_type::rebind<Y>::other>&) throw(); auto_resource& operator = (auto_resource&) throw(); ! template<typename Y> auto_resource& operator = (auto_resource<Y, typename traits_type::rebind<Y>::other>&) throw(); ~auto_resource() throw(); --- 267,274 ---- auto_resource(auto_resource&) throw(); ! template <typename Y> auto_resource(auto_resource<Y, typename traits_type::template rebind<Y>::other>&) throw(); auto_resource& operator = (auto_resource&) throw(); ! template<typename Y> auto_resource& operator = (auto_resource<Y, typename traits_type::template rebind<Y>::other>&) throw(); ~auto_resource() throw(); *************** *** 283,288 **** auto_resource(auto_resource_ref<X, Traits>) throw(); auto_resource& operator = (auto_resource_ref<X, Traits>) throw(); // addition ! template<typename Y> operator auto_resource_ref<Y, typename traits_type::rebind<Y>::other>() throw(); ! template<typename Y> operator auto_resource<Y, typename traits_type::rebind<Y>::other>() throw(); // Peter Dimov's safe_bool conversion --- 286,291 ---- auto_resource(auto_resource_ref<X, Traits>) throw(); auto_resource& operator = (auto_resource_ref<X, Traits>) throw(); // addition ! template<typename Y> operator auto_resource_ref<Y, typename traits_type::template rebind<Y>::other>() throw(); ! template<typename Y> operator auto_resource<Y, typename traits_type::template rebind<Y>::other>() throw(); // Peter Dimov's safe_bool conversion *************** *** 367,379 **** typedef typename traits_type::element_type element_type; typedef typename traits_type::pointer_type pointer_type; ! typedef typename inherited::auto_resource_ref<X*, Traits> auto_resource_ref_type; // 20.4.5.1 construct/copy/destroy: explicit auto_ptr(pointer_type p = 0) throw(); auto_ptr(auto_ptr& r) throw(); ! template <typename Y> auto_ptr(auto_ptr<Y, typename traits_type::rebind<Y*>::other>& r) throw(); auto_ptr& operator = (auto_ptr&) throw(); ! template<typename Y> auto_ptr& operator = (auto_ptr<Y, typename traits_type::rebind<Y*>::other>&) throw(); // construction and assignment from NULL --- 370,382 ---- typedef typename traits_type::element_type element_type; typedef typename traits_type::pointer_type pointer_type; ! typedef typename inherited::template auto_resource_ref<X*, Traits> auto_resource_ref_type; // 20.4.5.1 construct/copy/destroy: explicit auto_ptr(pointer_type p = 0) throw(); auto_ptr(auto_ptr& r) throw(); ! template <typename Y> auto_ptr(auto_ptr<Y, typename traits_type::template rebind<Y*>::other>& r) throw(); auto_ptr& operator = (auto_ptr&) throw(); ! template<typename Y> auto_ptr& operator = (auto_ptr<Y, typename traits_type::template rebind<Y*>::other>&) throw(); // construction and assignment from NULL *************** *** 396,400 **** auto_ptr(auto_resource_ref_type r) throw(); auto_ptr& operator = (auto_resource_ref_type) throw(); // addition ! template<typename Y> operator auto_ptr<Y, typename traits_type::rebind<Y*>::other>() throw(); }; --- 399,403 ---- auto_ptr(auto_resource_ref_type r) throw(); auto_ptr& operator = (auto_resource_ref_type) throw(); // addition ! template<typename Y> operator auto_ptr<Y, typename traits_type::template rebind<Y*>::other>() throw(); }; *************** *** 422,426 **** template <typename X, class Traits> template <typename Y> ! inline auto_resource <X, Traits>::auto_resource(auto_resource<Y, typename traits_type::rebind<Y>::other>& x) throw() : pointer_m(x.release()) { } --- 425,429 ---- template <typename X, class Traits> template <typename Y> ! inline auto_resource <X, Traits>::auto_resource(auto_resource<Y, typename traits_type::template rebind<Y>::other>& x) throw() : pointer_m(x.release()) { } *************** *** 436,440 **** template <typename Y> inline auto_resource<X, Traits>& auto_resource<X, Traits>::operator = ( ! auto_resource<Y, typename traits_type::rebind<Y>::other>& x) throw() { reset(x.release()); --- 439,443 ---- template <typename Y> inline auto_resource<X, Traits>& auto_resource<X, Traits>::operator = ( ! auto_resource<Y, typename traits_type::template rebind<Y>::other>& x) throw() { reset(x.release()); *************** *** 503,509 **** template <typename X, class Traits> template<typename Y> ! inline auto_resource<X, Traits>::operator typename auto_resource<X, Traits>::auto_resource_ref<Y, typename Traits::rebind<Y>::other>() throw() { ! auto_resource_ref<Y, typename traits_type::rebind<Y>::other> r; r.pointer_m = release(); return r; --- 506,512 ---- template <typename X, class Traits> template<typename Y> ! inline auto_resource<X, Traits>::operator typename auto_resource<X, Traits>::template auto_resource_ref<Y, typename Traits::template rebind<Y>::other>() throw() { ! auto_resource_ref<Y, typename traits_type::template rebind<Y>::other> r; r.pointer_m = release(); return r; *************** *** 512,518 **** template <typename X, class Traits> template<typename Y> ! inline auto_resource<X, Traits>::operator auto_resource<Y, typename Traits::rebind<Y>::other>() throw() { ! return auto_resource<Y, typename traits_type::rebind<Y>::other>(release()); } --- 515,521 ---- template <typename X, class Traits> template<typename Y> ! inline auto_resource<X, Traits>::operator auto_resource<Y, typename Traits::template rebind<Y>::other>() throw() { ! return auto_resource<Y, typename traits_type::template rebind<Y>::other>(release()); } *************** *** 556,560 **** template <typename X, class Traits> template <typename Y> ! inline auto_ptr<X, Traits>::auto_ptr(auto_ptr<Y, typename traits_type::rebind<Y*>::other>& r) throw() : inherited(r) { } --- 559,563 ---- template <typename X, class Traits> template <typename Y> ! inline auto_ptr<X, Traits>::auto_ptr(auto_ptr<Y, typename traits_type::template rebind<Y*>::other>& r) throw() : inherited(r) { } *************** *** 570,574 **** template<typename Y> inline auto_ptr<X, Traits>& auto_ptr<X, Traits>::operator = ( ! auto_ptr<Y, typename traits_type::rebind<Y*>::other>& r) throw() { inherited::operator = (r); --- 573,577 ---- template<typename Y> inline auto_ptr<X, Traits>& auto_ptr<X, Traits>::operator = ( ! auto_ptr<Y, typename traits_type::template rebind<Y*>::other>& r) throw() { inherited::operator = (r); *************** *** 661,667 **** template <typename X, class Traits> template<typename Y> ! inline auto_ptr<X, Traits>::operator auto_ptr<Y, typename Traits::rebind<Y*>::other>() throw() { ! return auto_ptr<Y, typename Traits::rebind<Y*>::other>(inherited::release()); } --- 664,670 ---- template <typename X, class Traits> template<typename Y> ! inline auto_ptr<X, Traits>::operator auto_ptr<Y, typename Traits::template rebind<Y*>::other>() throw() { ! return auto_ptr<Y, typename Traits::template rebind<Y*>::other>(inherited::release()); } |