diff --git a/direct/src/dcparser/dcNumericRange.I b/direct/src/dcparser/dcNumericRange.I index debc9bbcd5..8983204d48 100644 --- a/direct/src/dcparser/dcNumericRange.I +++ b/direct/src/dcparser/dcNumericRange.I @@ -58,7 +58,7 @@ is_in_range(Number num) const { return true; } - TYPENAME Ranges::const_iterator ri; + typename Ranges::const_iterator ri; for (ri = _ranges.begin(); ri != _ranges.end(); ++ri) { if (num >= (*ri)._min && num <= (*ri)._max) { return true; @@ -96,7 +96,7 @@ has_one_value() const { * by the numeric range. */ template -INLINE TYPENAME DCNumericRange::Number DCNumericRange:: +INLINE typename DCNumericRange::Number DCNumericRange:: get_one_value() const { nassertr(has_one_value(), 0); return _ranges[0]._min; @@ -110,7 +110,7 @@ void DCNumericRange:: generate_hash(HashGenerator &hashgen) const { if (!_ranges.empty()) { hashgen.add_int(_ranges.size()); - TYPENAME Ranges::const_iterator ri; + typename Ranges::const_iterator ri; for (ri = _ranges.begin(); ri != _ranges.end(); ++ri) { // We don't account for the fractional part of floating-point ranges // here. Shouldn't be a real issue. @@ -127,7 +127,7 @@ template void DCNumericRange:: output(ostream &out, Number divisor) const { if (!_ranges.empty()) { - TYPENAME Ranges::const_iterator ri; + typename Ranges::const_iterator ri; ri = _ranges.begin(); output_minmax(out, divisor, *ri); ++ri; @@ -151,7 +151,7 @@ output_char(ostream &out, Number divisor) const { } else { if (!_ranges.empty()) { - TYPENAME Ranges::const_iterator ri; + typename Ranges::const_iterator ri; ri = _ranges.begin(); output_minmax_char(out, *ri); ++ri; @@ -187,7 +187,7 @@ add_range(Number min, Number max) { return false; } - TYPENAME Ranges::const_iterator ri; + typename Ranges::const_iterator ri; for (ri = _ranges.begin(); ri != _ranges.end(); ++ri) { if ((min >= (*ri)._min && min <= (*ri)._max) || (max >= (*ri)._min && max <= (*ri)._max) || @@ -227,7 +227,7 @@ get_num_ranges() const { * Returns the minimum value defined by the nth component. */ template -INLINE TYPENAME DCNumericRange::Number DCNumericRange:: +INLINE typename DCNumericRange::Number DCNumericRange:: get_min(int n) const { nassertr(n >= 0 && n < (int)_ranges.size(), 0); return _ranges[n]._min; @@ -237,7 +237,7 @@ get_min(int n) const { * Returns the maximum value defined by the nth component. */ template -INLINE TYPENAME DCNumericRange::Number DCNumericRange:: +INLINE typename DCNumericRange::Number DCNumericRange:: get_max(int n) const { nassertr(n >= 0 && n < (int)_ranges.size(), 0); return _ranges[n]._max; diff --git a/direct/src/dcparser/dcbase.h b/direct/src/dcparser/dcbase.h index 6cf146d848..4f2712f148 100644 --- a/direct/src/dcparser/dcbase.h +++ b/direct/src/dcparser/dcbase.h @@ -61,7 +61,6 @@ #endif #define INLINE inline -#define TYPENAME typename // These symbols are used within the Panda environment for exporting classes // and functions to the scripting language. They're largely meaningless if diff --git a/dtool/src/dtoolbase/dtoolbase_cc.h b/dtool/src/dtoolbase/dtoolbase_cc.h index 8c44ec4429..2aa6dc6252 100644 --- a/dtool/src/dtoolbase/dtoolbase_cc.h +++ b/dtool/src/dtoolbase/dtoolbase_cc.h @@ -37,7 +37,6 @@ #define INLINE inline #define ALWAYS_INLINE inline -#define TYPENAME typename #define MOVE(x) x #define EXPORT_TEMPLATE_CLASS(expcl, exptp, classname) @@ -78,8 +77,6 @@ typedef int ios_seekdir; #include #include -#define TYPENAME typename - #ifndef HAVE_IOS_TYPEDEFS typedef int ios_openmode; typedef int ios_fmtflags; diff --git a/dtool/src/dtoolbase/epvector.h b/dtool/src/dtoolbase/epvector.h index c3c650d015..78db158f39 100644 --- a/dtool/src/dtoolbase/epvector.h +++ b/dtool/src/dtoolbase/epvector.h @@ -39,7 +39,7 @@ class epvector : public vector > { public: typedef Eigen::aligned_allocator allocator; typedef vector base_class; - typedef TYPENAME base_class::size_type size_type; + typedef typename base_class::size_type size_type; epvector(TypeHandle type_handle = pvector_type_handle) : base_class(allocator()) { } epvector(const epvector ©) : base_class(copy) { } diff --git a/dtool/src/dtoolbase/pallocator.T b/dtool/src/dtoolbase/pallocator.T index 59af0f0ec1..f2776eb39e 100644 --- a/dtool/src/dtoolbase/pallocator.T +++ b/dtool/src/dtoolbase/pallocator.T @@ -20,7 +20,7 @@ pallocator_single(TypeHandle type_handle) noexcept : template INLINE Type *pallocator_single:: -allocate(TYPENAME pallocator_single::size_type n, TYPENAME allocator::const_pointer) { +allocate(typename pallocator_single::size_type n, typename allocator::const_pointer) { TAU_PROFILE("pallocator_single:allocate()", " ", TAU_USER); // This doesn't support allocating arrays. assert(n == 1); @@ -30,7 +30,7 @@ allocate(TYPENAME pallocator_single::size_type n, TYPENAME allocator template INLINE void pallocator_single:: -deallocate(TYPENAME pallocator_single::pointer p, TYPENAME pallocator_single::size_type) { +deallocate(typename pallocator_single::pointer p, typename pallocator_single::size_type) { TAU_PROFILE("pallocator_single:deallocate()", " ", TAU_USER); StaticDeletedChain::deallocate(p, _type_handle); } @@ -44,13 +44,13 @@ pallocator_array(TypeHandle type_handle) noexcept : template INLINE Type *pallocator_array:: -allocate(TYPENAME pallocator_array::size_type n, TYPENAME allocator::const_pointer) { - return (TYPENAME pallocator_array::pointer) +allocate(typename pallocator_array::size_type n, typename allocator::const_pointer) { + return (typename pallocator_array::pointer) ASSUME_ALIGNED(_type_handle.allocate_array(n * sizeof(Type)), MEMORY_HOOK_ALIGNMENT); } template INLINE void pallocator_array:: -deallocate(TYPENAME pallocator_array::pointer p, TYPENAME pallocator_array::size_type) { +deallocate(typename pallocator_array::pointer p, typename pallocator_array::size_type) { _type_handle.deallocate_array((void *)p); } diff --git a/dtool/src/dtoolbase/pallocator.h b/dtool/src/dtoolbase/pallocator.h index 9c27191aa0..daca6fb275 100644 --- a/dtool/src/dtoolbase/pallocator.h +++ b/dtool/src/dtoolbase/pallocator.h @@ -48,11 +48,11 @@ class pallocator_single : public allocator { public: // Nowadays we cannot implicitly inherit typedefs from base classes in a // template class; we must explicitly copy them here. - typedef TYPENAME allocator::pointer pointer; - typedef TYPENAME allocator::reference reference; - typedef TYPENAME allocator::const_pointer const_pointer; - typedef TYPENAME allocator::const_reference const_reference; - typedef TYPENAME allocator::size_type size_type; + typedef typename allocator::pointer pointer; + typedef typename allocator::reference reference; + typedef typename allocator::const_pointer const_pointer; + typedef typename allocator::const_reference const_reference; + typedef typename allocator::size_type size_type; INLINE pallocator_single(TypeHandle type_handle) noexcept; @@ -77,11 +77,11 @@ class pallocator_array : public allocator { public: // Nowadays we cannot implicitly inherit typedefs from base classes in a // template class; we must explicitly copy them here. - typedef TYPENAME allocator::pointer pointer; - typedef TYPENAME allocator::reference reference; - typedef TYPENAME allocator::const_pointer const_pointer; - typedef TYPENAME allocator::const_reference const_reference; - typedef TYPENAME allocator::size_type size_type; + typedef typename allocator::pointer pointer; + typedef typename allocator::reference reference; + typedef typename allocator::const_pointer const_pointer; + typedef typename allocator::const_reference const_reference; + typedef typename allocator::size_type size_type; INLINE pallocator_array(TypeHandle type_handle = TypeHandle::none()) noexcept; diff --git a/dtool/src/dtoolbase/pdeque.h b/dtool/src/dtoolbase/pdeque.h index e3bc33d521..a7de9f5bb0 100644 --- a/dtool/src/dtoolbase/pdeque.h +++ b/dtool/src/dtoolbase/pdeque.h @@ -37,7 +37,7 @@ template class pdeque : public deque > { public: typedef pallocator_array allocator; - typedef TYPENAME deque::size_type size_type; + typedef typename deque::size_type size_type; pdeque(TypeHandle type_handle = pdeque_type_handle) : deque >(allocator(type_handle)) { } pdeque(size_type n, TypeHandle type_handle = pdeque_type_handle) : deque >(n, Type(), allocator(type_handle)) { } pdeque(size_type n, const Type &value, TypeHandle type_handle = pdeque_type_handle) : deque >(n, value, allocator(type_handle)) { } diff --git a/dtool/src/dtoolbase/plist.h b/dtool/src/dtoolbase/plist.h index 978f91cd49..259eb68198 100644 --- a/dtool/src/dtoolbase/plist.h +++ b/dtool/src/dtoolbase/plist.h @@ -38,15 +38,15 @@ class plist : public list > { public: typedef pallocator_single allocator; typedef list base_class; - typedef TYPENAME base_class::size_type size_type; + typedef typename base_class::size_type size_type; plist(TypeHandle type_handle = plist_type_handle) : base_class(allocator(type_handle)) { } plist(size_type n, TypeHandle type_handle = plist_type_handle) : base_class(n, Type(), allocator(type_handle)) { } plist(size_type n, const Type &value, TypeHandle type_handle = plist_type_handle) : base_class(n, value, allocator(type_handle)) { } - typedef TYPENAME base_class::iterator iterator; - typedef TYPENAME base_class::const_iterator const_iterator; - typedef TYPENAME base_class::reverse_iterator reverse_iterator; - typedef TYPENAME base_class::const_reverse_iterator const_reverse_iterator; + typedef typename base_class::iterator iterator; + typedef typename base_class::const_iterator const_iterator; + typedef typename base_class::reverse_iterator reverse_iterator; + typedef typename base_class::const_reverse_iterator const_reverse_iterator; // This exists because libc++'s remove implementation has a bug with Panda's // allocator class. diff --git a/dtool/src/dtoolbase/pmap.h b/dtool/src/dtoolbase/pmap.h index 8ac5be6134..1a53836dd3 100644 --- a/dtool/src/dtoolbase/pmap.h +++ b/dtool/src/dtoolbase/pmap.h @@ -58,33 +58,33 @@ public: pmap(const Compare &comp, TypeHandle type_handle = pmap_type_handle) : base_class(comp, allocator(type_handle)) { } #ifdef USE_TAU - TYPENAME base_class::mapped_type & - operator [] (const TYPENAME base_class::key_type &k) { + typename base_class::mapped_type & + operator [] (const typename base_class::key_type &k) { TAU_PROFILE("pmap::operator [] (const key_type &)", " ", TAU_USER); return base_class::operator [] (k); } - std::pair - insert(const TYPENAME base_class::value_type &x) { + std::pair + insert(const typename base_class::value_type &x) { TAU_PROFILE("pmap::insert(const value_type &)", " ", TAU_USER); return base_class::insert(x); } - TYPENAME base_class::iterator - insert(TYPENAME base_class::iterator position, - const TYPENAME base_class::value_type &x) { + typename base_class::iterator + insert(typename base_class::iterator position, + const typename base_class::value_type &x) { TAU_PROFILE("pmap::insert(iterator, const value_type &)", " ", TAU_USER); return base_class::insert(position, x); } void - erase(TYPENAME base_class::iterator position) { + erase(typename base_class::iterator position) { TAU_PROFILE("pmap::erase(iterator)", " ", TAU_USER); base_class::erase(position); } - TYPENAME base_class::size_type - erase(const TYPENAME base_class::key_type &x) { + typename base_class::size_type + erase(const typename base_class::key_type &x) { TAU_PROFILE("pmap::erase(const key_type &)", " ", TAU_USER); return base_class::erase(x); } @@ -95,14 +95,14 @@ public: base_class::clear(); } - TYPENAME base_class::iterator - find(const TYPENAME base_class::key_type &x) { + typename base_class::iterator + find(const typename base_class::key_type &x) { TAU_PROFILE("pmap::find(const key_type &)", " ", TAU_USER); return base_class::find(x); } - TYPENAME base_class::const_iterator - find(const TYPENAME base_class::key_type &x) const { + typename base_class::const_iterator + find(const typename base_class::key_type &x) const { TAU_PROFILE("pmap::find(const key_type &)", " ", TAU_USER); return base_class::find(x); } diff --git a/dtool/src/dtoolbase/pset.h b/dtool/src/dtoolbase/pset.h index 142c5b3149..1c194dff9b 100644 --- a/dtool/src/dtoolbase/pset.h +++ b/dtool/src/dtoolbase/pset.h @@ -57,27 +57,27 @@ public: pset(const Compare &comp, TypeHandle type_handle = pset_type_handle) : base_class(comp, type_handle) { } #ifdef USE_TAU - std::pair - insert(const TYPENAME base_class::value_type &x) { + std::pair + insert(const typename base_class::value_type &x) { TAU_PROFILE("pset::insert(const value_type &)", " ", TAU_USER); return base_class::insert(x); } - TYPENAME base_class::iterator - insert(TYPENAME base_class::iterator position, - const TYPENAME base_class::value_type &x) { + typename base_class::iterator + insert(typename base_class::iterator position, + const typename base_class::value_type &x) { TAU_PROFILE("pset::insert(iterator, const value_type &)", " ", TAU_USER); return base_class::insert(position, x); } void - erase(TYPENAME base_class::iterator position) { + erase(typename base_class::iterator position) { TAU_PROFILE("pset::erase(iterator)", " ", TAU_USER); base_class::erase(position); } - TYPENAME base_class::size_type - erase(const TYPENAME base_class::key_type &x) { + typename base_class::size_type + erase(const typename base_class::key_type &x) { TAU_PROFILE("pset::erase(const key_type &)", " ", TAU_USER); return base_class::erase(x); } @@ -88,14 +88,14 @@ public: base_class::clear(); } - TYPENAME base_class::iterator - find(const TYPENAME base_class::key_type &x) { + typename base_class::iterator + find(const typename base_class::key_type &x) { TAU_PROFILE("pset::find(x)", " ", TAU_USER); return base_class::find(x); } - TYPENAME base_class::const_iterator - find(const TYPENAME base_class::key_type &x) const { + typename base_class::const_iterator + find(const typename base_class::key_type &x) const { TAU_PROFILE("pset::find(x)", " ", TAU_USER); return base_class::find(x); } diff --git a/dtool/src/interrogatedb/interrogate_datafile.I b/dtool/src/interrogatedb/interrogate_datafile.I index 1e9d0f17e2..ee8d3f38a3 100644 --- a/dtool/src/interrogatedb/interrogate_datafile.I +++ b/dtool/src/interrogatedb/interrogate_datafile.I @@ -19,7 +19,7 @@ template void idf_output_vector(ostream &out, const std::vector &vec) { out << vec.size() << " "; - TYPENAME std::vector::const_iterator vi; + typename std::vector::const_iterator vi; for (vi = vec.begin(); vi != vec.end(); ++vi) { out << (*vi) << " "; } diff --git a/panda/src/chan/animChannel.I b/panda/src/chan/animChannel.I index 6dd73d5240..d776b938e5 100644 --- a/panda/src/chan/animChannel.I +++ b/panda/src/chan/animChannel.I @@ -71,7 +71,7 @@ INLINE AnimChannel:: */ template void AnimChannel:: -get_value(int, TYPENAME AnimChannel::ValueType &) { +get_value(int, typename AnimChannel::ValueType &) { } #endif diff --git a/panda/src/chan/animChannel.h b/panda/src/chan/animChannel.h index 4137196f52..531511660e 100644 --- a/panda/src/chan/animChannel.h +++ b/panda/src/chan/animChannel.h @@ -33,7 +33,7 @@ protected: INLINE AnimChannel(const string &name = ""); INLINE AnimChannel(AnimGroup *parent, const AnimChannel ©); public: - typedef TYPENAME SwitchType::ValueType ValueType; + typedef typename SwitchType::ValueType ValueType; INLINE AnimChannel(AnimGroup *parent, const string &name); INLINE ~AnimChannel(); diff --git a/panda/src/chan/animChannelFixed.h b/panda/src/chan/animChannelFixed.h index 9940f5bdcf..0ad0ff5696 100644 --- a/panda/src/chan/animChannelFixed.h +++ b/panda/src/chan/animChannelFixed.h @@ -28,7 +28,7 @@ template class AnimChannelFixed : public AnimChannel { public: - typedef TYPENAME AnimChannel::ValueType ValueType; + typedef typename AnimChannel::ValueType ValueType; protected: INLINE AnimChannelFixed(AnimGroup *parent, const AnimChannelFixed ©); diff --git a/panda/src/chan/movingPart.h b/panda/src/chan/movingPart.h index 7b3640b981..dd6dc7540b 100644 --- a/panda/src/chan/movingPart.h +++ b/panda/src/chan/movingPart.h @@ -26,7 +26,7 @@ template class MovingPart : public MovingPartBase { public: - typedef TYPENAME SwitchType::ValueType ValueType; + typedef typename SwitchType::ValueType ValueType; typedef AnimChannel ChannelType; protected: diff --git a/panda/src/egg/eggMorphList.I b/panda/src/egg/eggMorphList.I index 5b665247da..deded17c7e 100644 --- a/panda/src/egg/eggMorphList.I +++ b/panda/src/egg/eggMorphList.I @@ -97,7 +97,7 @@ compare_to(const EggMorphList &other, double threshold) const { * */ template -INLINE TYPENAME EggMorphList::iterator EggMorphList:: +INLINE typename EggMorphList::iterator EggMorphList:: begin() { return _morphs.begin(); } @@ -106,7 +106,7 @@ begin() { * */ template -INLINE TYPENAME EggMorphList::const_iterator EggMorphList:: +INLINE typename EggMorphList::const_iterator EggMorphList:: begin() const { return _morphs.begin(); } @@ -115,7 +115,7 @@ begin() const { * */ template -INLINE TYPENAME EggMorphList::iterator EggMorphList:: +INLINE typename EggMorphList::iterator EggMorphList:: end() { return _morphs.end(); } @@ -124,7 +124,7 @@ end() { * */ template -INLINE TYPENAME EggMorphList::const_iterator EggMorphList:: +INLINE typename EggMorphList::const_iterator EggMorphList:: end() const { return _morphs.end(); } @@ -133,7 +133,7 @@ end() const { * */ template -INLINE TYPENAME EggMorphList::size_type EggMorphList:: +INLINE typename EggMorphList::size_type EggMorphList:: size() const { return _morphs.size(); } @@ -155,10 +155,10 @@ empty() const { * to *be* a set, but we cannot export STL sets from a Windows DLL. */ template -pair::iterator, bool> EggMorphList:: +pair::iterator, bool> EggMorphList:: insert(const MorphType &value) { pair result; - TYPENAME Morphs::iterator mi; + typename Morphs::iterator mi; for (mi = _morphs.begin(); mi != _morphs.end(); ++mi) { if ((*mi) == value) { // This value is already present. diff --git a/panda/src/egg/eggMorphList.h b/panda/src/egg/eggMorphList.h index c6e86388ba..581e53d9e9 100644 --- a/panda/src/egg/eggMorphList.h +++ b/panda/src/egg/eggMorphList.h @@ -31,9 +31,9 @@ private: typedef epvector Morphs; public: - typedef TYPENAME Morphs::iterator iterator; - typedef TYPENAME Morphs::const_iterator const_iterator; - typedef TYPENAME Morphs::size_type size_type; + typedef typename Morphs::iterator iterator; + typedef typename Morphs::const_iterator const_iterator; + typedef typename Morphs::size_type size_type; INLINE EggMorphList(); INLINE EggMorphList(const EggMorphList ©); diff --git a/panda/src/express/nodePointerTo.I b/panda/src/express/nodePointerTo.I index c035cd34cf..c8020d0181 100644 --- a/panda/src/express/nodePointerTo.I +++ b/panda/src/express/nodePointerTo.I @@ -62,7 +62,7 @@ operator = (NodePointerTo &&from) noexcept { * */ template -INLINE TYPENAME NodePointerTo::To &NodePointerTo:: +INLINE typename NodePointerTo::To &NodePointerTo:: operator *() const { return *((To *)(this->_void_ptr)); } @@ -73,7 +73,7 @@ operator *() const { * */ template -INLINE TYPENAME NodePointerTo::To *NodePointerTo:: +INLINE typename NodePointerTo::To *NodePointerTo:: operator -> () const { return (To *)(this->_void_ptr); } @@ -99,7 +99,7 @@ operator T *() const { * around compiler problems, particularly for implicit upcasts. */ template -INLINE TYPENAME NodePointerTo::To *NodePointerTo:: +INLINE typename NodePointerTo::To *NodePointerTo:: p() const { return (To *)(this->_void_ptr); } @@ -135,8 +135,8 @@ operator = (const NodePointerTo ©) { */ template INLINE NodeConstPointerTo:: -NodeConstPointerTo(const TYPENAME NodeConstPointerTo::To *ptr) : - NodePointerToBase((TYPENAME NodeConstPointerTo::To *)ptr) +NodeConstPointerTo(const typename NodeConstPointerTo::To *ptr) : + NodePointerToBase((typename NodeConstPointerTo::To *)ptr) { } #endif // CPPPARSER @@ -218,7 +218,7 @@ operator = (NodeConstPointerTo &&from) noexcept { * */ template -INLINE const TYPENAME NodeConstPointerTo::To &NodeConstPointerTo:: +INLINE const typename NodeConstPointerTo::To &NodeConstPointerTo:: operator *() const { return *((To *)(this->_void_ptr)); } @@ -229,7 +229,7 @@ operator *() const { * */ template -INLINE const TYPENAME NodeConstPointerTo::To *NodeConstPointerTo:: +INLINE const typename NodeConstPointerTo::To *NodeConstPointerTo:: operator -> () const { return (To *)(this->_void_ptr); } @@ -256,7 +256,7 @@ operator const T * () const { * work around compiler problems, particularly for implicit upcasts. */ template -INLINE const TYPENAME NodeConstPointerTo::To *NodeConstPointerTo:: +INLINE const typename NodeConstPointerTo::To *NodeConstPointerTo:: p() const { return (To *)(this->_void_ptr); } diff --git a/panda/src/express/nodePointerTo.h b/panda/src/express/nodePointerTo.h index 52ce974879..7b2c189253 100644 --- a/panda/src/express/nodePointerTo.h +++ b/panda/src/express/nodePointerTo.h @@ -28,7 +28,7 @@ public: // By hiding this template from interrogate, we improve compile-time speed // and memory utilization. #ifndef CPPPARSER - typedef TYPENAME NodePointerToBase::To To; + typedef typename NodePointerToBase::To To; INLINE NodePointerTo(To *ptr = nullptr); INLINE NodePointerTo(const NodePointerTo ©); INLINE NodePointerTo(NodePointerTo &&from) noexcept; @@ -59,7 +59,7 @@ public: // By hiding this template from interrogate, we improve compile-time speed // and memory utilization. #ifndef CPPPARSER - typedef TYPENAME NodePointerToBase::To To; + typedef typename NodePointerToBase::To To; INLINE NodeConstPointerTo(const To *ptr = nullptr); INLINE NodeConstPointerTo(const NodePointerTo ©); INLINE NodeConstPointerTo(const NodeConstPointerTo ©); diff --git a/panda/src/express/ordered_vector.I b/panda/src/express/ordered_vector.I index 4f0d5082f0..aedee72232 100644 --- a/panda/src/express/ordered_vector.I +++ b/panda/src/express/ordered_vector.I @@ -37,7 +37,7 @@ ordered_vector(const Compare &compare, TypeHandle type_handle) : * Returns the iterator that marks the first element in the ordered vector. */ template -INLINE TYPENAME ordered_vector::ITERATOR ordered_vector:: +INLINE typename ordered_vector::ITERATOR ordered_vector:: begin() { return _vector.begin(); } @@ -46,7 +46,7 @@ begin() { * Returns the iterator that marks the end of the ordered vector. */ template -INLINE TYPENAME ordered_vector::ITERATOR ordered_vector:: +INLINE typename ordered_vector::ITERATOR ordered_vector:: end() { return _vector.end(); } @@ -56,7 +56,7 @@ end() { * when viewed in reverse order. */ template -INLINE TYPENAME ordered_vector::REVERSE_ITERATOR ordered_vector:: +INLINE typename ordered_vector::REVERSE_ITERATOR ordered_vector:: rbegin() { return _vector.rbegin(); } @@ -66,7 +66,7 @@ rbegin() { * in reverse order. */ template -INLINE TYPENAME ordered_vector::REVERSE_ITERATOR ordered_vector:: +INLINE typename ordered_vector::REVERSE_ITERATOR ordered_vector:: rend() { return _vector.rend(); } @@ -75,7 +75,7 @@ rend() { * Returns the iterator that marks the first element in the ordered vector. */ template -INLINE TYPENAME ordered_vector::CONST_ITERATOR ordered_vector:: +INLINE typename ordered_vector::CONST_ITERATOR ordered_vector:: begin() const { return _vector.begin(); } @@ -84,7 +84,7 @@ begin() const { * Returns the iterator that marks the end of the ordered vector. */ template -INLINE TYPENAME ordered_vector::CONST_ITERATOR ordered_vector:: +INLINE typename ordered_vector::CONST_ITERATOR ordered_vector:: end() const { return _vector.end(); } @@ -94,7 +94,7 @@ end() const { * when viewed in reverse order. */ template -INLINE TYPENAME ordered_vector::CONST_REVERSE_ITERATOR ordered_vector:: +INLINE typename ordered_vector::CONST_REVERSE_ITERATOR ordered_vector:: rbegin() const { return _vector.rbegin(); } @@ -104,7 +104,7 @@ rbegin() const { * in reverse order. */ template -INLINE TYPENAME ordered_vector::CONST_REVERSE_ITERATOR ordered_vector:: +INLINE typename ordered_vector::CONST_REVERSE_ITERATOR ordered_vector:: rend() const { return _vector.rend(); } @@ -113,7 +113,7 @@ rend() const { * Returns the iterator that marks the first element in the ordered vector. */ template -INLINE TYPENAME ordered_vector::CONST_ITERATOR ordered_vector:: +INLINE typename ordered_vector::CONST_ITERATOR ordered_vector:: cbegin() const { return _vector.begin(); } @@ -122,7 +122,7 @@ cbegin() const { * Returns the iterator that marks the end of the ordered vector. */ template -INLINE TYPENAME ordered_vector::CONST_ITERATOR ordered_vector:: +INLINE typename ordered_vector::CONST_ITERATOR ordered_vector:: cend() const { return _vector.end(); } @@ -132,7 +132,7 @@ cend() const { * when viewed in reverse order. */ template -INLINE TYPENAME ordered_vector::CONST_REVERSE_ITERATOR ordered_vector:: +INLINE typename ordered_vector::CONST_REVERSE_ITERATOR ordered_vector:: crbegin() const { return _vector.rbegin(); } @@ -142,7 +142,7 @@ crbegin() const { * in reverse order. */ template -INLINE TYPENAME ordered_vector::CONST_REVERSE_ITERATOR ordered_vector:: +INLINE typename ordered_vector::CONST_REVERSE_ITERATOR ordered_vector:: crend() const { return _vector.rend(); } @@ -151,8 +151,8 @@ crend() const { * Returns the nth element. */ template -INLINE TYPENAME ordered_vector::REFERENCE ordered_vector:: -operator [] (TYPENAME ordered_vector::SIZE_TYPE n) { +INLINE typename ordered_vector::REFERENCE ordered_vector:: +operator [] (typename ordered_vector::SIZE_TYPE n) { return _vector[n]; } @@ -160,8 +160,8 @@ operator [] (TYPENAME ordered_vector::SIZE_TYPE n) { * Returns the nth element. */ template -INLINE TYPENAME ordered_vector::CONST_REFERENCE ordered_vector:: -operator [] (TYPENAME ordered_vector::SIZE_TYPE n) const { +INLINE typename ordered_vector::CONST_REFERENCE ordered_vector:: +operator [] (typename ordered_vector::SIZE_TYPE n) const { return _vector[n]; } @@ -169,7 +169,7 @@ operator [] (TYPENAME ordered_vector::SIZE_TYPE n) const { * Returns a reference to the first element. */ template -INLINE TYPENAME ordered_vector::REFERENCE ordered_vector:: +INLINE typename ordered_vector::REFERENCE ordered_vector:: front() { #ifdef _DEBUG assert(!_vector.empty()); @@ -181,7 +181,7 @@ front() { * Returns a const reference to the first element. */ template -INLINE TYPENAME ordered_vector::CONST_REFERENCE ordered_vector:: +INLINE typename ordered_vector::CONST_REFERENCE ordered_vector:: front() const { #ifdef _DEBUG assert(!_vector.empty()); @@ -193,7 +193,7 @@ front() const { * Returns a reference to the first element. */ template -INLINE TYPENAME ordered_vector::REFERENCE ordered_vector:: +INLINE typename ordered_vector::REFERENCE ordered_vector:: back() { #ifdef _DEBUG assert(!_vector.empty()); @@ -205,7 +205,7 @@ back() { * Returns a const reference to the last element. */ template -INLINE TYPENAME ordered_vector::CONST_REFERENCE ordered_vector:: +INLINE typename ordered_vector::CONST_REFERENCE ordered_vector:: back() const { #ifdef _DEBUG assert(!_vector.empty()); @@ -217,7 +217,7 @@ back() const { * Returns the number of elements in the ordered vector. */ template -INLINE TYPENAME ordered_vector::SIZE_TYPE ordered_vector:: +INLINE typename ordered_vector::SIZE_TYPE ordered_vector:: size() const { return _vector.size(); } @@ -227,7 +227,7 @@ size() const { * ordered vector. */ template -INLINE TYPENAME ordered_vector::SIZE_TYPE ordered_vector:: +INLINE typename ordered_vector::SIZE_TYPE ordered_vector:: max_size() const { return _vector.max_size(); } @@ -312,8 +312,8 @@ operator >= (const ordered_vector &other) const { * componet is true if the insert operation has taken place. */ template -INLINE pair::ITERATOR, bool> ordered_vector:: -insert_unique(const TYPENAME ordered_vector::VALUE_TYPE &key) { +INLINE pair::ITERATOR, bool> ordered_vector:: +insert_unique(const typename ordered_vector::VALUE_TYPE &key) { TAU_PROFILE("ordered_vector::insert_unique(const value_type &)", " ", TAU_USER); ITERATOR position = find_insert_position(begin(), end(), key); #ifdef NDEBUG @@ -341,8 +341,8 @@ insert_unique(const TYPENAME ordered_vector::VALUE_TYPE &k * The return value is the iterator referencing the new element. */ template -INLINE TYPENAME ordered_vector::ITERATOR ordered_vector:: -insert_nonunique(const TYPENAME ordered_vector::VALUE_TYPE &key) { +INLINE typename ordered_vector::ITERATOR ordered_vector:: +insert_nonunique(const typename ordered_vector::VALUE_TYPE &key) { TAU_PROFILE("ordered_vector::insert_nonunique(const value_type &)", " ", TAU_USER); ITERATOR position = find_insert_position(begin(), end(), key); nassertr(position >= begin() && position <= end(), end()); @@ -358,9 +358,9 @@ insert_nonunique(const TYPENAME ordered_vector::VALUE_TYPE * sorting position; no checks are made. */ template -INLINE TYPENAME ordered_vector::ITERATOR ordered_vector:: -insert_unverified(TYPENAME ordered_vector::ITERATOR position, - const TYPENAME ordered_vector::VALUE_TYPE &key) { +INLINE typename ordered_vector::ITERATOR ordered_vector:: +insert_unverified(typename ordered_vector::ITERATOR position, + const typename ordered_vector::VALUE_TYPE &key) { TAU_PROFILE("ordered_vector::insert_unverified(iterator, const value_type &)", " ", TAU_USER); ITERATOR result = _vector.insert(position, key); return result; @@ -371,8 +371,8 @@ insert_unverified(TYPENAME ordered_vector::ITERATOR positi * sequential iterator. */ template -INLINE TYPENAME ordered_vector::ITERATOR ordered_vector:: -erase(TYPENAME ordered_vector::ITERATOR position) { +INLINE typename ordered_vector::ITERATOR ordered_vector:: +erase(typename ordered_vector::ITERATOR position) { TAU_PROFILE("ordered_vector::erase(iterator)", " ", TAU_USER); SIZE_TYPE count = position - begin(); _vector.erase(position); @@ -384,8 +384,8 @@ erase(TYPENAME ordered_vector::ITERATOR position) { * elements removed. */ template -INLINE TYPENAME ordered_vector::SIZE_TYPE ordered_vector:: -erase(const TYPENAME ordered_vector::KEY_TYPE &key) { +INLINE typename ordered_vector::SIZE_TYPE ordered_vector:: +erase(const typename ordered_vector::KEY_TYPE &key) { TAU_PROFILE("ordered_vector::erase(const key_type &)", " ", TAU_USER); pair result = equal_range(key); SIZE_TYPE count = result.second - result.first; @@ -398,8 +398,8 @@ erase(const TYPENAME ordered_vector::KEY_TYPE &key) { */ template INLINE void ordered_vector:: -erase(TYPENAME ordered_vector::ITERATOR first, - TYPENAME ordered_vector::ITERATOR last) { +erase(typename ordered_vector::ITERATOR first, + typename ordered_vector::ITERATOR last) { TAU_PROFILE("ordered_vector::erase(iterator, iterator)", " ", TAU_USER); _vector.erase(first, last); } @@ -420,8 +420,8 @@ clear() { * matching the key, the particular iterator returned is not defined. */ template -INLINE TYPENAME ordered_vector::ITERATOR ordered_vector:: -find(const TYPENAME ordered_vector::KEY_TYPE &key) { +INLINE typename ordered_vector::ITERATOR ordered_vector:: +find(const typename ordered_vector::KEY_TYPE &key) { TAU_PROFILE("ordered_vector::find(const key_type &)", " ", TAU_USER); return nci(r_find(begin(), end(), end(), key)); } @@ -432,8 +432,8 @@ find(const TYPENAME ordered_vector::KEY_TYPE &key) { * matching the key, the particular iterator returned is not defined. */ template -INLINE TYPENAME ordered_vector::CONST_ITERATOR ordered_vector:: -find(const TYPENAME ordered_vector::KEY_TYPE &key) const { +INLINE typename ordered_vector::CONST_ITERATOR ordered_vector:: +find(const typename ordered_vector::KEY_TYPE &key) const { TAU_PROFILE("ordered_vector::find(const key_type &)", " ", TAU_USER); return r_find(begin(), end(), end(), key); } @@ -452,8 +452,8 @@ find(const TYPENAME ordered_vector::KEY_TYPE &key) const { * not necessarily the converse. */ template -INLINE TYPENAME ordered_vector::ITERATOR ordered_vector:: -find_particular(const TYPENAME ordered_vector::KEY_TYPE &key) { +INLINE typename ordered_vector::ITERATOR ordered_vector:: +find_particular(const typename ordered_vector::KEY_TYPE &key) { TAU_PROFILE("ordered_vector::find_particular(const key_type &)", " ", TAU_USER); return nci(r_find_particular(begin(), end(), end(), key)); } @@ -469,8 +469,8 @@ find_particular(const TYPENAME ordered_vector::KEY_TYPE &k * is not defined. */ template -INLINE TYPENAME ordered_vector::CONST_ITERATOR ordered_vector:: -find_particular(const TYPENAME ordered_vector::KEY_TYPE &key) const { +INLINE typename ordered_vector::CONST_ITERATOR ordered_vector:: +find_particular(const typename ordered_vector::KEY_TYPE &key) const { TAU_PROFILE("ordered_vector::find_particular(const key_type &)", " ", TAU_USER); return r_find_particular(begin(), end(), end(), key); } @@ -480,7 +480,7 @@ find_particular(const TYPENAME ordered_vector::KEY_TYPE &k * the vector. */ template -INLINE TYPENAME ordered_vector::SIZE_TYPE ordered_vector:: +INLINE typename ordered_vector::SIZE_TYPE ordered_vector:: count(const key_type &key) const { TAU_PROFILE("ordered_vector::count(const key_type &)", " ", TAU_USER); return r_count(begin(), end(), key); @@ -491,8 +491,8 @@ count(const key_type &key) const { * all elements are less than key. */ template -INLINE TYPENAME ordered_vector::ITERATOR ordered_vector:: -lower_bound(const TYPENAME ordered_vector::KEY_TYPE &key) { +INLINE typename ordered_vector::ITERATOR ordered_vector:: +lower_bound(const typename ordered_vector::KEY_TYPE &key) { TAU_PROFILE("ordered_vector::lower_bound(const key_type &)", " ", TAU_USER); return nci(r_lower_bound(begin(), end(), key)); } @@ -502,8 +502,8 @@ lower_bound(const TYPENAME ordered_vector::KEY_TYPE &key) * all elements are less than key. */ template -INLINE TYPENAME ordered_vector::CONST_ITERATOR ordered_vector:: -lower_bound(const TYPENAME ordered_vector::KEY_TYPE &key) const { +INLINE typename ordered_vector::CONST_ITERATOR ordered_vector:: +lower_bound(const typename ordered_vector::KEY_TYPE &key) const { TAU_PROFILE("ordered_vector::lower_bound(const key_type &)", " ", TAU_USER); return r_lower_bound(begin(), end(), key); } @@ -513,8 +513,8 @@ lower_bound(const TYPENAME ordered_vector::KEY_TYPE &key) * element is greater than key. */ template -INLINE TYPENAME ordered_vector::ITERATOR ordered_vector:: -upper_bound(const TYPENAME ordered_vector::KEY_TYPE &key) { +INLINE typename ordered_vector::ITERATOR ordered_vector:: +upper_bound(const typename ordered_vector::KEY_TYPE &key) { TAU_PROFILE("ordered_vector::upper_bound(const key_type &)", " ", TAU_USER); return nci(r_upper_bound(begin(), end(), key)); } @@ -524,8 +524,8 @@ upper_bound(const TYPENAME ordered_vector::KEY_TYPE &key) * element is greater than key. */ template -INLINE TYPENAME ordered_vector::CONST_ITERATOR ordered_vector:: -upper_bound(const TYPENAME ordered_vector::KEY_TYPE &key) const { +INLINE typename ordered_vector::CONST_ITERATOR ordered_vector:: +upper_bound(const typename ordered_vector::KEY_TYPE &key) const { TAU_PROFILE("ordered_vector::upper_bound(const key_type &)", " ", TAU_USER); return r_upper_bound(begin(), end(), key); } @@ -534,20 +534,20 @@ upper_bound(const TYPENAME ordered_vector::KEY_TYPE &key) * Returns the pair (lower_bound(key), upper_bound(key)). */ template -INLINE pair::ITERATOR, TYPENAME ordered_vector::ITERATOR> ordered_vector:: -equal_range(const TYPENAME ordered_vector::KEY_TYPE &key) { +INLINE pair::ITERATOR, typename ordered_vector::ITERATOR> ordered_vector:: +equal_range(const typename ordered_vector::KEY_TYPE &key) { TAU_PROFILE("ordered_vector::equal_range(const key_type &)", " ", TAU_USER); - pair::CONST_ITERATOR, TYPENAME ordered_vector::CONST_ITERATOR> result; + pair::CONST_ITERATOR, typename ordered_vector::CONST_ITERATOR> result; result = r_equal_range(begin(), end(), key); - return pair::ITERATOR, TYPENAME ordered_vector::ITERATOR>(nci(result.first), nci(result.second)); + return pair::ITERATOR, typename ordered_vector::ITERATOR>(nci(result.first), nci(result.second)); } /** * Returns the pair (lower_bound(key), upper_bound(key)). */ template -INLINE pair::CONST_ITERATOR, TYPENAME ordered_vector::CONST_ITERATOR> ordered_vector:: -equal_range(const TYPENAME ordered_vector::KEY_TYPE &key) const { +INLINE pair::CONST_ITERATOR, typename ordered_vector::CONST_ITERATOR> ordered_vector:: +equal_range(const typename ordered_vector::KEY_TYPE &key) const { TAU_PROFILE("ordered_vector::equal_range(const key_type &)", " ", TAU_USER); return r_equal_range(begin(), end(), key); } @@ -569,7 +569,7 @@ swap(ordered_vector ©) { */ template INLINE void ordered_vector:: -reserve(TYPENAME ordered_vector::SIZE_TYPE n) { +reserve(typename ordered_vector::SIZE_TYPE n) { TAU_PROFILE("ordered_vector::reserve(size_type)", " ", TAU_USER); _vector.reserve(n); } @@ -666,8 +666,8 @@ resize(SIZE_TYPE n, const VALUE_TYPE &value) { * const flavors of some of these methods. */ template -INLINE TYPENAME ordered_vector::ITERATOR ordered_vector:: -nci(TYPENAME ordered_vector::CONST_ITERATOR i) { +INLINE typename ordered_vector::ITERATOR ordered_vector:: +nci(typename ordered_vector::CONST_ITERATOR i) { return begin() + (i - begin()); } @@ -676,10 +676,10 @@ nci(TYPENAME ordered_vector::CONST_ITERATOR i) { * indicated key, and returns the corresponding iterator. */ template -INLINE TYPENAME ordered_vector::ITERATOR ordered_vector:: -find_insert_position(TYPENAME ordered_vector::ITERATOR first, - TYPENAME ordered_vector::ITERATOR last, - const TYPENAME ordered_vector::KEY_TYPE &key) { +INLINE typename ordered_vector::ITERATOR ordered_vector:: +find_insert_position(typename ordered_vector::ITERATOR first, + typename ordered_vector::ITERATOR last, + const typename ordered_vector::KEY_TYPE &key) { ITERATOR result = r_find_insert_position(first, last, key); return result; } @@ -708,9 +708,9 @@ ov_set(const Compare &compare, TypeHandle type_handle) : * Maps to insert_unique(). */ template -TYPENAME ov_set::ITERATOR ov_set:: -insert(TYPENAME ov_set::ITERATOR position, - const TYPENAME ov_set::VALUE_TYPE &key) { +typename ov_set::ITERATOR ov_set:: +insert(typename ov_set::ITERATOR position, + const typename ov_set::VALUE_TYPE &key) { return ordered_vector::insert_unique(position, key); } @@ -718,8 +718,8 @@ insert(TYPENAME ov_set::ITERATOR position, * Maps to insert_unique(). */ template -INLINE pair::ITERATOR, bool> ov_set:: -insert(const TYPENAME ov_set::VALUE_TYPE &key) { +INLINE pair::ITERATOR, bool> ov_set:: +insert(const typename ov_set::VALUE_TYPE &key) { return ordered_vector::insert_unique(key); } @@ -765,9 +765,9 @@ ov_multiset(const Compare &compare, TypeHandle type_handle) : * Maps to insert_nonunique(). */ template -TYPENAME ov_multiset::ITERATOR ov_multiset:: -insert(TYPENAME ov_multiset::ITERATOR position, - const TYPENAME ov_multiset::VALUE_TYPE &key) { +typename ov_multiset::ITERATOR ov_multiset:: +insert(typename ov_multiset::ITERATOR position, + const typename ov_multiset::VALUE_TYPE &key) { return ordered_vector::insert_nonunique(position, key); } @@ -775,8 +775,8 @@ insert(TYPENAME ov_multiset::ITERATOR position, * Maps to insert_nonunique(). */ template -INLINE TYPENAME ov_multiset::ITERATOR ov_multiset:: -insert(const TYPENAME ov_multiset::VALUE_TYPE &key) { +INLINE typename ov_multiset::ITERATOR ov_multiset:: +insert(const typename ov_multiset::VALUE_TYPE &key) { return ordered_vector::insert_nonunique(key); } diff --git a/panda/src/express/ordered_vector.T b/panda/src/express/ordered_vector.T index e43226a9ee..2d57d0a1d3 100644 --- a/panda/src/express/ordered_vector.T +++ b/panda/src/express/ordered_vector.T @@ -22,9 +22,9 @@ * iterator referencing the original value is returned. */ template -TYPENAME ordered_vector::ITERATOR ordered_vector:: -insert_unique(TYPENAME ordered_vector::ITERATOR position, - const TYPENAME ordered_vector::VALUE_TYPE &key) { +typename ordered_vector::ITERATOR ordered_vector:: +insert_unique(typename ordered_vector::ITERATOR position, + const typename ordered_vector::VALUE_TYPE &key) { TAU_PROFILE("ordered_vector::insert_unique(iterator, const value_type &)", " ", TAU_USER); if (position != end()) { // If we're not inserting at the end, the element we're @@ -67,9 +67,9 @@ insert_unique(TYPENAME ordered_vector::ITERATOR position, * same key to be inserted. */ template -TYPENAME ordered_vector::ITERATOR ordered_vector:: -insert_nonunique(TYPENAME ordered_vector::ITERATOR position, - const TYPENAME ordered_vector::VALUE_TYPE &key) { +typename ordered_vector::ITERATOR ordered_vector:: +insert_nonunique(typename ordered_vector::ITERATOR position, + const typename ordered_vector::VALUE_TYPE &key) { TAU_PROFILE("ordered_vector::insert_nonunique(iterator, const value_type &)", " ", TAU_USER); if (position != end()) { // If we're not inserting at the end, the element we're @@ -145,10 +145,10 @@ verify_list_nonunique() const { * The recursive implementation of find_insert_position(). */ template -TYPENAME ordered_vector::ITERATOR ordered_vector:: -r_find_insert_position(TYPENAME ordered_vector::ITERATOR first, - TYPENAME ordered_vector::ITERATOR last, - const TYPENAME ordered_vector::KEY_TYPE &key) { +typename ordered_vector::ITERATOR ordered_vector:: +r_find_insert_position(typename ordered_vector::ITERATOR first, + typename ordered_vector::ITERATOR last, + const typename ordered_vector::KEY_TYPE &key) { if (first == last) { // The list is empty; the insert position is the last of the list. return last; @@ -171,11 +171,11 @@ r_find_insert_position(TYPENAME ordered_vector::ITERATOR f * The recursive implementation of find(). */ template -TYPENAME ordered_vector::CONST_ITERATOR ordered_vector:: -r_find(TYPENAME ordered_vector::CONST_ITERATOR first, - TYPENAME ordered_vector::CONST_ITERATOR last, - TYPENAME ordered_vector::CONST_ITERATOR not_found, - const TYPENAME ordered_vector::KEY_TYPE &key) const { +typename ordered_vector::CONST_ITERATOR ordered_vector:: +r_find(typename ordered_vector::CONST_ITERATOR first, + typename ordered_vector::CONST_ITERATOR last, + typename ordered_vector::CONST_ITERATOR not_found, + const typename ordered_vector::KEY_TYPE &key) const { if (first == last) { // The list is empty; the key is not on the list. return not_found; @@ -202,11 +202,11 @@ r_find(TYPENAME ordered_vector::CONST_ITERATOR first, * The recursive implementation of find_particular(). */ template -TYPENAME ordered_vector::CONST_ITERATOR ordered_vector:: -r_find_particular(TYPENAME ordered_vector::CONST_ITERATOR first, - TYPENAME ordered_vector::CONST_ITERATOR last, - TYPENAME ordered_vector::CONST_ITERATOR not_found, - const TYPENAME ordered_vector::KEY_TYPE &key) const { +typename ordered_vector::CONST_ITERATOR ordered_vector:: +r_find_particular(typename ordered_vector::CONST_ITERATOR first, + typename ordered_vector::CONST_ITERATOR last, + typename ordered_vector::CONST_ITERATOR not_found, + const typename ordered_vector::KEY_TYPE &key) const { if (first == last) { // The list is empty; the key is not on the list. return not_found; @@ -253,10 +253,10 @@ r_find_particular(TYPENAME ordered_vector::CONST_ITERATOR * The recursive implementation of count(). */ template -TYPENAME ordered_vector::SIZE_TYPE ordered_vector:: -r_count(TYPENAME ordered_vector::CONST_ITERATOR first, - TYPENAME ordered_vector::CONST_ITERATOR last, - const TYPENAME ordered_vector::KEY_TYPE &key) const { +typename ordered_vector::SIZE_TYPE ordered_vector:: +r_count(typename ordered_vector::CONST_ITERATOR first, + typename ordered_vector::CONST_ITERATOR last, + const typename ordered_vector::KEY_TYPE &key) const { if (first == last) { // The list is empty; the key is not on the list. @@ -286,10 +286,10 @@ r_count(TYPENAME ordered_vector::CONST_ITERATOR first, * The recursive implementation of lower_bound(). */ template -TYPENAME ordered_vector::CONST_ITERATOR ordered_vector:: -r_lower_bound(TYPENAME ordered_vector::CONST_ITERATOR first, - TYPENAME ordered_vector::CONST_ITERATOR last, - const TYPENAME ordered_vector::KEY_TYPE &key) const { +typename ordered_vector::CONST_ITERATOR ordered_vector:: +r_lower_bound(typename ordered_vector::CONST_ITERATOR first, + typename ordered_vector::CONST_ITERATOR last, + const typename ordered_vector::KEY_TYPE &key) const { if (first == last) { // The list is empty; the key is not on the list. return last; @@ -317,10 +317,10 @@ r_lower_bound(TYPENAME ordered_vector::CONST_ITERATOR firs * The recursive implementation of upper_bound(). */ template -TYPENAME ordered_vector::CONST_ITERATOR ordered_vector:: -r_upper_bound(TYPENAME ordered_vector::CONST_ITERATOR first, - TYPENAME ordered_vector::CONST_ITERATOR last, - const TYPENAME ordered_vector::KEY_TYPE &key) const { +typename ordered_vector::CONST_ITERATOR ordered_vector:: +r_upper_bound(typename ordered_vector::CONST_ITERATOR first, + typename ordered_vector::CONST_ITERATOR last, + const typename ordered_vector::KEY_TYPE &key) const { if (first == last) { // The list is empty; the key is not on the list. return last; @@ -348,11 +348,11 @@ r_upper_bound(TYPENAME ordered_vector::CONST_ITERATOR firs * The recursive implementation of equal_range(). */ template -pair::CONST_ITERATOR, TYPENAME ordered_vector::CONST_ITERATOR> ordered_vector:: -r_equal_range(TYPENAME ordered_vector::CONST_ITERATOR first, - TYPENAME ordered_vector::CONST_ITERATOR last, - const TYPENAME ordered_vector::KEY_TYPE &key) const { - typedef pair::CONST_ITERATOR, TYPENAME ordered_vector::CONST_ITERATOR> pair_type; +pair::CONST_ITERATOR, typename ordered_vector::CONST_ITERATOR> ordered_vector:: +r_equal_range(typename ordered_vector::CONST_ITERATOR first, + typename ordered_vector::CONST_ITERATOR last, + const typename ordered_vector::KEY_TYPE &key) const { + typedef pair::CONST_ITERATOR, typename ordered_vector::CONST_ITERATOR> pair_type; if (first == last) { // The list is empty; the key is not on the list. diff --git a/panda/src/express/ordered_vector.h b/panda/src/express/ordered_vector.h index e9e3a03693..651a0c27fb 100644 --- a/panda/src/express/ordered_vector.h +++ b/panda/src/express/ordered_vector.h @@ -105,13 +105,13 @@ public: // Be careful when using the non-const iterators that you do not disturb the // sorted order of the vector, or that if you do, you call sort() when you // are done. - typedef TYPENAME Vector::iterator ITERATOR; - typedef TYPENAME Vector::const_iterator CONST_ITERATOR; - typedef TYPENAME Vector::reverse_iterator REVERSE_ITERATOR; - typedef TYPENAME Vector::const_reverse_iterator CONST_REVERSE_ITERATOR; + typedef typename Vector::iterator ITERATOR; + typedef typename Vector::const_iterator CONST_ITERATOR; + typedef typename Vector::reverse_iterator REVERSE_ITERATOR; + typedef typename Vector::const_reverse_iterator CONST_REVERSE_ITERATOR; - typedef TYPENAME Vector::difference_type DIFFERENCE_TYPE; - typedef TYPENAME Vector::size_type SIZE_TYPE; + typedef typename Vector::difference_type DIFFERENCE_TYPE; + typedef typename Vector::size_type SIZE_TYPE; // Since the #define symbols do not actually expand to the correct names, we // have to re-typedef them so callers can reference them by their correct, @@ -268,8 +268,8 @@ private: template, class Vector = pvector > class ov_set : public ordered_vector { public: - typedef TYPENAME ordered_vector::ITERATOR ITERATOR; - typedef TYPENAME ordered_vector::VALUE_TYPE VALUE_TYPE; + typedef typename ordered_vector::ITERATOR ITERATOR; + typedef typename ordered_vector::VALUE_TYPE VALUE_TYPE; INLINE ov_set(TypeHandle type_handle = ov_set_type_handle); INLINE ov_set(const Compare &compare, @@ -289,8 +289,8 @@ public: template, class Vector = pvector > class ov_multiset : public ordered_vector { public: - typedef TYPENAME ordered_vector::ITERATOR ITERATOR; - typedef TYPENAME ordered_vector::VALUE_TYPE VALUE_TYPE; + typedef typename ordered_vector::ITERATOR ITERATOR; + typedef typename ordered_vector::VALUE_TYPE VALUE_TYPE; INLINE ov_multiset(TypeHandle type_handle = ov_set_type_handle); INLINE ov_multiset(const Compare &compare, diff --git a/panda/src/express/pointerTo.I b/panda/src/express/pointerTo.I index bc71cfbfd9..20e667fa11 100644 --- a/panda/src/express/pointerTo.I +++ b/panda/src/express/pointerTo.I @@ -53,7 +53,7 @@ operator = (PointerTo &&from) noexcept { * */ template -constexpr TYPENAME PointerTo::To &PointerTo:: +constexpr typename PointerTo::To &PointerTo:: operator *() const noexcept { return *((To *)(this->_void_ptr)); } @@ -62,7 +62,7 @@ operator *() const noexcept { * */ template -constexpr TYPENAME PointerTo::To *PointerTo:: +constexpr typename PointerTo::To *PointerTo:: operator -> () const noexcept { return (To *)(this->_void_ptr); } @@ -97,7 +97,7 @@ cheat() { * compiler problems, particularly for implicit upcasts. */ template -constexpr TYPENAME PointerTo::To *PointerTo:: +constexpr typename PointerTo::To *PointerTo:: p() const noexcept { return (To *)(this->_void_ptr); } @@ -127,8 +127,8 @@ operator = (const PointerTo ©) { */ template ALWAYS_INLINE ConstPointerTo:: -ConstPointerTo(const TYPENAME ConstPointerTo::To *ptr) noexcept : - PointerToBase((TYPENAME ConstPointerTo::To *)ptr) +ConstPointerTo(const typename ConstPointerTo::To *ptr) noexcept : + PointerToBase((typename ConstPointerTo::To *)ptr) { } @@ -196,7 +196,7 @@ operator = (ConstPointerTo &&from) noexcept { * */ template -constexpr const TYPENAME ConstPointerTo::To &ConstPointerTo:: +constexpr const typename ConstPointerTo::To &ConstPointerTo:: operator *() const noexcept { return *((To *)(this->_void_ptr)); } @@ -205,7 +205,7 @@ operator *() const noexcept { * */ template -constexpr const TYPENAME ConstPointerTo::To *ConstPointerTo:: +constexpr const typename ConstPointerTo::To *ConstPointerTo:: operator -> () const noexcept { return (To *)(this->_void_ptr); } @@ -240,7 +240,7 @@ cheat() { * around compiler problems, particularly for implicit upcasts. */ template -constexpr const TYPENAME ConstPointerTo::To *ConstPointerTo:: +constexpr const typename ConstPointerTo::To *ConstPointerTo:: p() const noexcept { return (To *)(this->_void_ptr); } diff --git a/panda/src/express/pointerTo.h b/panda/src/express/pointerTo.h index 313ad41a55..1dcf369064 100644 --- a/panda/src/express/pointerTo.h +++ b/panda/src/express/pointerTo.h @@ -68,7 +68,7 @@ template class PointerTo : public PointerToBase { public: - typedef TYPENAME PointerToBase::To To; + typedef typename PointerToBase::To To; PUBLISHED: ALWAYS_INLINE constexpr PointerTo() noexcept = default; ALWAYS_INLINE PointerTo(To *ptr) noexcept; @@ -129,7 +129,7 @@ PUBLISHED: template class ConstPointerTo : public PointerToBase { public: - typedef TYPENAME PointerToBase::To To; + typedef typename PointerToBase::To To; PUBLISHED: ALWAYS_INLINE constexpr ConstPointerTo() noexcept = default; ALWAYS_INLINE ConstPointerTo(const To *ptr) noexcept; diff --git a/panda/src/express/pointerToArray.I b/panda/src/express/pointerToArray.I index bb0946897f..04e943c5fc 100644 --- a/panda/src/express/pointerToArray.I +++ b/panda/src/express/pointerToArray.I @@ -105,7 +105,7 @@ PointerToArray(pvector &&from, TypeHandle type_handle) : * */ template -INLINE TYPENAME PointerToArray::iterator PointerToArray:: +INLINE typename PointerToArray::iterator PointerToArray:: begin() const { if ((this->_void_ptr) == nullptr) { return _empty_array.begin(); @@ -117,7 +117,7 @@ begin() const { * */ template -INLINE TYPENAME PointerToArray::iterator PointerToArray:: +INLINE typename PointerToArray::iterator PointerToArray:: end() const { if ((this->_void_ptr) == nullptr) { return _empty_array.begin(); @@ -129,7 +129,7 @@ end() const { * */ template -INLINE TYPENAME PointerToArray::reverse_iterator PointerToArray:: +INLINE typename PointerToArray::reverse_iterator PointerToArray:: rbegin() const { if ((this->_void_ptr) == nullptr) { return _empty_array.rbegin(); @@ -141,7 +141,7 @@ rbegin() const { * */ template -INLINE TYPENAME PointerToArray::reverse_iterator PointerToArray:: +INLINE typename PointerToArray::reverse_iterator PointerToArray:: rend() const { if ((this->_void_ptr) == nullptr) { return _empty_array.rbegin(); @@ -153,7 +153,7 @@ rend() const { * */ template -INLINE TYPENAME PointerToArray::size_type PointerToArray:: +INLINE typename PointerToArray::size_type PointerToArray:: size() const { return ((this->_void_ptr) == nullptr) ? 0 : ((To *)(this->_void_ptr))->size(); } @@ -162,7 +162,7 @@ size() const { * */ template -INLINE TYPENAME PointerToArray::size_type PointerToArray:: +INLINE typename PointerToArray::size_type PointerToArray:: max_size() const { nassertd((this->_void_ptr) != nullptr) { ((PointerToArray *)this)->reassign(new ReferenceCountedVector(_type_handle)); @@ -184,7 +184,7 @@ empty() const { */ template INLINE void PointerToArray:: -reserve(TYPENAME PointerToArray::size_type n) { +reserve(typename PointerToArray::size_type n) { if ((this->_void_ptr) == nullptr) { ((PointerToArray *)this)->reassign(new ReferenceCountedVector(_type_handle)); } @@ -196,7 +196,7 @@ reserve(TYPENAME PointerToArray::size_type n) { */ template INLINE void PointerToArray:: -resize(TYPENAME PointerToArray::size_type n) { +resize(typename PointerToArray::size_type n) { if ((this->_void_ptr) == nullptr) { ((PointerToArray *)this)->reassign(new ReferenceCountedVector(_type_handle)); } @@ -207,7 +207,7 @@ resize(TYPENAME PointerToArray::size_type n) { * */ template -INLINE TYPENAME PointerToArray::size_type PointerToArray:: +INLINE typename PointerToArray::size_type PointerToArray:: capacity() const { nassertr((this->_void_ptr) != nullptr, 0); return ((To *)(this->_void_ptr))->capacity(); @@ -217,7 +217,7 @@ capacity() const { * */ template -INLINE TYPENAME PointerToArray::reference PointerToArray:: +INLINE typename PointerToArray::reference PointerToArray:: front() const { nassertd((this->_void_ptr) != nullptr) { ((PointerToArray *)this)->reassign(new ReferenceCountedVector(_type_handle)); @@ -232,7 +232,7 @@ front() const { * */ template -INLINE TYPENAME PointerToArray::reference PointerToArray:: +INLINE typename PointerToArray::reference PointerToArray:: back() const { nassertd((this->_void_ptr) != nullptr) { ((PointerToArray *)this)->reassign(new ReferenceCountedVector(_type_handle)); @@ -247,7 +247,7 @@ back() const { * */ template -INLINE TYPENAME PointerToArray::iterator PointerToArray:: +INLINE typename PointerToArray::iterator PointerToArray:: insert(iterator position, const Element &x) { if ((this->_void_ptr) == nullptr) { ((PointerToArray *)this)->reassign(new ReferenceCountedVector(_type_handle)); @@ -302,7 +302,7 @@ erase(iterator first, iterator last) { * */ template -INLINE TYPENAME PointerToArray::reference PointerToArray:: +INLINE typename PointerToArray::reference PointerToArray:: operator [](size_type n) const { nassertd((this->_void_ptr) != nullptr) { ((PointerToArray *)this)->reassign(new ReferenceCountedVector(_type_handle)); @@ -318,7 +318,7 @@ operator [](size_type n) const { * */ template -INLINE TYPENAME PointerToArray::reference PointerToArray:: +INLINE typename PointerToArray::reference PointerToArray:: operator [](int n) const { return operator[]((size_type)n); } @@ -728,7 +728,7 @@ ConstPointerToArray(pvector &&from, TypeHandle type_handle) : * */ template -INLINE TYPENAME ConstPointerToArray::iterator ConstPointerToArray:: +INLINE typename ConstPointerToArray::iterator ConstPointerToArray:: begin() const { if ((this->_void_ptr) == nullptr) { return _empty_array.begin(); @@ -740,7 +740,7 @@ begin() const { * */ template -INLINE TYPENAME ConstPointerToArray::iterator ConstPointerToArray:: +INLINE typename ConstPointerToArray::iterator ConstPointerToArray:: end() const { if ((this->_void_ptr) == nullptr) { return _empty_array.begin(); @@ -752,7 +752,7 @@ end() const { * */ template -INLINE TYPENAME ConstPointerToArray::reverse_iterator ConstPointerToArray:: +INLINE typename ConstPointerToArray::reverse_iterator ConstPointerToArray:: rbegin() const { if ((this->_void_ptr) == nullptr) { return _empty_array.rbegin(); @@ -764,7 +764,7 @@ rbegin() const { * */ template -INLINE TYPENAME ConstPointerToArray::reverse_iterator ConstPointerToArray:: +INLINE typename ConstPointerToArray::reverse_iterator ConstPointerToArray:: rend() const { if ((this->_void_ptr) == nullptr) { return _empty_array.rbegin(); @@ -776,7 +776,7 @@ rend() const { * */ template -INLINE TYPENAME ConstPointerToArray::size_type ConstPointerToArray:: +INLINE typename ConstPointerToArray::size_type ConstPointerToArray:: size() const { return ((this->_void_ptr) == nullptr) ? 0 : ((To *)(this->_void_ptr))->size(); } @@ -785,7 +785,7 @@ size() const { * */ template -INLINE TYPENAME ConstPointerToArray::size_type ConstPointerToArray:: +INLINE typename ConstPointerToArray::size_type ConstPointerToArray:: max_size() const { nassertd((this->_void_ptr) != nullptr) { ((ConstPointerToArray *)this)->reassign(new ReferenceCountedVector(_type_handle)); @@ -806,7 +806,7 @@ empty() const { * */ template -INLINE TYPENAME ConstPointerToArray::size_type ConstPointerToArray:: +INLINE typename ConstPointerToArray::size_type ConstPointerToArray:: capacity() const { nassertd((this->_void_ptr) != nullptr) { ((ConstPointerToArray *)this)->reassign(new ReferenceCountedVector(_type_handle)); @@ -818,7 +818,7 @@ capacity() const { * */ template -INLINE TYPENAME ConstPointerToArray::reference ConstPointerToArray:: +INLINE typename ConstPointerToArray::reference ConstPointerToArray:: front() const { nassertd((this->_void_ptr) != nullptr) { ((ConstPointerToArray *)this)->reassign(new ReferenceCountedVector(_type_handle)); @@ -833,7 +833,7 @@ front() const { * */ template -INLINE TYPENAME ConstPointerToArray::reference ConstPointerToArray:: +INLINE typename ConstPointerToArray::reference ConstPointerToArray:: back() const { nassertd((this->_void_ptr) != nullptr) { ((ConstPointerToArray *)this)->reassign(new ReferenceCountedVector(_type_handle)); @@ -849,7 +849,7 @@ back() const { * */ template -INLINE TYPENAME ConstPointerToArray::reference ConstPointerToArray:: +INLINE typename ConstPointerToArray::reference ConstPointerToArray:: operator [](size_type n) const { nassertd((this->_void_ptr) != nullptr) { ((ConstPointerToArray *)this)->reassign(new ReferenceCountedVector(_type_handle)); @@ -865,7 +865,7 @@ operator [](size_type n) const { * */ template -INLINE TYPENAME ConstPointerToArray::reference ConstPointerToArray:: +INLINE typename ConstPointerToArray::reference ConstPointerToArray:: operator [](int n) const { return operator[]((size_type)n); } diff --git a/panda/src/express/pointerToArray.h b/panda/src/express/pointerToArray.h index 1df1193b3c..57c8be2f92 100644 --- a/panda/src/express/pointerToArray.h +++ b/panda/src/express/pointerToArray.h @@ -91,7 +91,7 @@ public: // subset of this class. So we define just the exportable interface here. #ifdef CPPPARSER PUBLISHED: - typedef TYPENAME pvector::size_type size_type; + typedef typename pvector::size_type size_type; INLINE PointerToArray(TypeHandle type_handle = get_type_handle(Element)); INLINE static PointerToArray empty_array(size_type n, TypeHandle type_handle = get_type_handle(Element)); INLINE PointerToArray(const PointerToArray ©); @@ -123,16 +123,16 @@ PUBLISHED: #else // CPPPARSER // This is the actual, complete interface. - typedef TYPENAME PointerToArrayBase::To To; - typedef TYPENAME pvector::value_type value_type; - typedef TYPENAME pvector::reference reference; - typedef TYPENAME pvector::const_reference const_reference; - typedef TYPENAME pvector::iterator iterator; - typedef TYPENAME pvector::const_iterator const_iterator; - typedef TYPENAME pvector::reverse_iterator reverse_iterator; - typedef TYPENAME pvector::const_reverse_iterator const_reverse_iterator; - typedef TYPENAME pvector::difference_type difference_type; - typedef TYPENAME pvector::size_type size_type; + typedef typename PointerToArrayBase::To To; + typedef typename pvector::value_type value_type; + typedef typename pvector::reference reference; + typedef typename pvector::const_reference const_reference; + typedef typename pvector::iterator iterator; + typedef typename pvector::const_iterator const_iterator; + typedef typename pvector::reverse_iterator reverse_iterator; + typedef typename pvector::const_reverse_iterator const_reverse_iterator; + typedef typename pvector::difference_type difference_type; + typedef typename pvector::size_type size_type; public: INLINE PointerToArray(TypeHandle type_handle = get_type_handle(Element)); @@ -150,8 +150,8 @@ public: INLINE iterator begin() const; INLINE iterator end() const; - INLINE TYPENAME PointerToArray::reverse_iterator rbegin() const; - INLINE TYPENAME PointerToArray::reverse_iterator rend() const; + INLINE typename PointerToArray::reverse_iterator rbegin() const; + INLINE typename PointerToArray::reverse_iterator rend() const; // Equality and comparison operators are pointerwise for PointerToArrays, // not elementwise as in vector. @@ -261,7 +261,7 @@ PUBLISHED: INLINE void clear(); - typedef TYPENAME pvector::size_type size_type; + typedef typename pvector::size_type size_type; INLINE size_type size() const; INLINE const Element &get_element(size_type n) const; EXTENSION(const Element &__getitem__(size_type n) const); @@ -279,21 +279,21 @@ PUBLISHED: #else // CPPPARSER // This is the actual, complete interface. - typedef TYPENAME PointerToArrayBase::To To; - typedef TYPENAME pvector::value_type value_type; - typedef TYPENAME pvector::const_reference reference; - typedef TYPENAME pvector::const_reference const_reference; - typedef TYPENAME pvector::const_iterator iterator; - typedef TYPENAME pvector::const_iterator const_iterator; + typedef typename PointerToArrayBase::To To; + typedef typename pvector::value_type value_type; + typedef typename pvector::const_reference reference; + typedef typename pvector::const_reference const_reference; + typedef typename pvector::const_iterator iterator; + typedef typename pvector::const_iterator const_iterator; #if defined(WIN32_VC) || defined(WIN64_VC) // VC++ seems to break the const_reverse_iterator definition somehow. - typedef TYPENAME pvector::reverse_iterator reverse_iterator; + typedef typename pvector::reverse_iterator reverse_iterator; #else - typedef TYPENAME pvector::const_reverse_iterator reverse_iterator; + typedef typename pvector::const_reverse_iterator reverse_iterator; #endif - typedef TYPENAME pvector::const_reverse_iterator const_reverse_iterator; - typedef TYPENAME pvector::difference_type difference_type; - typedef TYPENAME pvector::size_type size_type; + typedef typename pvector::const_reverse_iterator const_reverse_iterator; + typedef typename pvector::difference_type difference_type; + typedef typename pvector::size_type size_type; INLINE ConstPointerToArray(const Element *begin, const Element *end, TypeHandle type_handle = get_type_handle(Element)); INLINE ConstPointerToArray(const PointerToArray ©); @@ -306,8 +306,8 @@ PUBLISHED: INLINE iterator begin() const; INLINE iterator end() const; - INLINE TYPENAME ConstPointerToArray::reverse_iterator rbegin() const; - INLINE TYPENAME ConstPointerToArray::reverse_iterator rend() const; + INLINE typename ConstPointerToArray::reverse_iterator rbegin() const; + INLINE typename ConstPointerToArray::reverse_iterator rend() const; // Equality and comparison operators are pointerwise for PointerToArrays, // not elementwise as in vector. diff --git a/panda/src/express/pointerToArrayBase.I b/panda/src/express/pointerToArrayBase.I index 2b60162abc..a5188040fb 100644 --- a/panda/src/express/pointerToArrayBase.I +++ b/panda/src/express/pointerToArrayBase.I @@ -24,7 +24,7 @@ ReferenceCountedVector(TypeHandle type_handle) : pvector(type_handle) { */ template INLINE ReferenceCountedVector:: -ReferenceCountedVector(TYPENAME ReferenceCountedVector::size_type initial_size, TypeHandle type_handle) : +ReferenceCountedVector(typename ReferenceCountedVector::size_type initial_size, TypeHandle type_handle) : pvector(initial_size, type_handle) { } @@ -53,7 +53,7 @@ ReferenceCountedVector(pvector &&from) : * */ template -INLINE TYPENAME ReferenceCountedVector::size_type ReferenceCountedVector:: +INLINE typename ReferenceCountedVector::size_type ReferenceCountedVector:: size() const { return pvector::size(); } @@ -62,7 +62,7 @@ size() const { * */ template -INLINE TYPENAME ReferenceCountedVector::iterator ReferenceCountedVector:: +INLINE typename ReferenceCountedVector::iterator ReferenceCountedVector:: insert(iterator position, const Element &x) { return pvector::insert(position, x); } diff --git a/panda/src/express/pointerToArrayBase.h b/panda/src/express/pointerToArrayBase.h index 6f6128e26b..3c985ff379 100644 --- a/panda/src/express/pointerToArrayBase.h +++ b/panda/src/express/pointerToArrayBase.h @@ -37,8 +37,8 @@ template class ReferenceCountedVector : public NodeReferenceCount, public pvector { public: - typedef TYPENAME pvector::iterator iterator; - typedef TYPENAME pvector::size_type size_type; + typedef typename pvector::iterator iterator; + typedef typename pvector::size_type size_type; INLINE ReferenceCountedVector(TypeHandle type_handle); INLINE ReferenceCountedVector(size_type initial_size, TypeHandle type_handle); @@ -68,7 +68,7 @@ public: template class PointerToArrayBase : public PointerToBase > { public: - typedef TYPENAME PointerToBase >::To To; + typedef typename PointerToBase >::To To; protected: INLINE PointerToArrayBase(ReferenceCountedVector *ptr); diff --git a/panda/src/express/threadSafePointerTo.I b/panda/src/express/threadSafePointerTo.I index 7525fd4e4c..ef2b8db410 100644 --- a/panda/src/express/threadSafePointerTo.I +++ b/panda/src/express/threadSafePointerTo.I @@ -41,7 +41,7 @@ INLINE ThreadSafePointerTo:: * */ template -INLINE TYPENAME ThreadSafePointerTo::To &ThreadSafePointerTo:: +INLINE typename ThreadSafePointerTo::To &ThreadSafePointerTo:: operator *() const { return *((To *)AtomicAdjust::get_ptr(this->_void_ptr)); } @@ -50,7 +50,7 @@ operator *() const { * */ template -INLINE TYPENAME ThreadSafePointerTo::To *ThreadSafePointerTo:: +INLINE typename ThreadSafePointerTo::To *ThreadSafePointerTo:: operator -> () const { return (To *)AtomicAdjust::get_ptr(this->_void_ptr); } @@ -72,7 +72,7 @@ operator T * () const { * work around compiler problems, particularly for implicit upcasts. */ template -INLINE TYPENAME ThreadSafePointerTo::To *ThreadSafePointerTo:: +INLINE typename ThreadSafePointerTo::To *ThreadSafePointerTo:: p() const { return (To *)AtomicAdjust::get_ptr(this->_void_ptr); } @@ -102,8 +102,8 @@ operator = (const ThreadSafePointerTo ©) { */ template INLINE ThreadSafeConstPointerTo:: -ThreadSafeConstPointerTo(const TYPENAME ThreadSafeConstPointerTo::To *ptr) : - ThreadSafePointerToBase((TYPENAME ThreadSafeConstPointerTo::To *)ptr) +ThreadSafeConstPointerTo(const typename ThreadSafeConstPointerTo::To *ptr) : + ThreadSafePointerToBase((typename ThreadSafeConstPointerTo::To *)ptr) { } @@ -139,7 +139,7 @@ ThreadSafeConstPointerTo(const ThreadSafeConstPointerTo ©) : * */ template -INLINE const TYPENAME ThreadSafeConstPointerTo::To &ThreadSafeConstPointerTo:: +INLINE const typename ThreadSafeConstPointerTo::To &ThreadSafeConstPointerTo:: operator *() const { return *((To *)AtomicAdjust::get_ptr(this->_void_ptr)); } @@ -148,7 +148,7 @@ operator *() const { * */ template -INLINE const TYPENAME ThreadSafeConstPointerTo::To *ThreadSafeConstPointerTo:: +INLINE const typename ThreadSafeConstPointerTo::To *ThreadSafeConstPointerTo:: operator -> () const { return (To *)AtomicAdjust::get_ptr(this->_void_ptr); } @@ -171,7 +171,7 @@ operator const T * () const { * to work around compiler problems, particularly for implicit upcasts. */ template -INLINE const TYPENAME ThreadSafeConstPointerTo::To *ThreadSafeConstPointerTo:: +INLINE const typename ThreadSafeConstPointerTo::To *ThreadSafeConstPointerTo:: p() const { return (To *)AtomicAdjust::get_ptr(this->_void_ptr); } diff --git a/panda/src/express/threadSafePointerTo.h b/panda/src/express/threadSafePointerTo.h index f3801a5669..88699fa23a 100644 --- a/panda/src/express/threadSafePointerTo.h +++ b/panda/src/express/threadSafePointerTo.h @@ -26,7 +26,7 @@ template class ThreadSafePointerTo : public ThreadSafePointerToBase { public: - typedef TYPENAME ThreadSafePointerToBase::To To; + typedef typename ThreadSafePointerToBase::To To; PUBLISHED: INLINE ThreadSafePointerTo(To *ptr = nullptr); INLINE ThreadSafePointerTo(const ThreadSafePointerTo ©); @@ -71,7 +71,7 @@ PUBLISHED: template class ThreadSafeConstPointerTo : public ThreadSafePointerToBase { public: - typedef TYPENAME ThreadSafePointerToBase::To To; + typedef typename ThreadSafePointerToBase::To To; PUBLISHED: INLINE ThreadSafeConstPointerTo(const To *ptr = nullptr); INLINE ThreadSafeConstPointerTo(const ThreadSafePointerTo ©); diff --git a/panda/src/express/weakPointerTo.I b/panda/src/express/weakPointerTo.I index 969d2e7158..c6e570979f 100644 --- a/panda/src/express/weakPointerTo.I +++ b/panda/src/express/weakPointerTo.I @@ -43,7 +43,7 @@ WeakPointerTo(const WeakPointerTo ©) : * */ template -INLINE TYPENAME WeakPointerTo::To &WeakPointerTo:: +INLINE typename WeakPointerTo::To &WeakPointerTo:: operator *() const { assert(!this->was_deleted()); return *((To *)WeakPointerToBase::_void_ptr); @@ -53,7 +53,7 @@ operator *() const { * */ template -INLINE TYPENAME WeakPointerTo::To *WeakPointerTo:: +INLINE typename WeakPointerTo::To *WeakPointerTo:: operator -> () const { assert(!this->was_deleted()); return (To *)WeakPointerToBase::_void_ptr; @@ -106,7 +106,7 @@ lock() const { * around compiler problems, particularly for implicit upcasts. */ template -INLINE TYPENAME WeakPointerTo::To *WeakPointerTo:: +INLINE typename WeakPointerTo::To *WeakPointerTo:: p() const { assert(!this->was_deleted()); return (To *)WeakPointerToBase::_void_ptr; @@ -117,7 +117,7 @@ p() const { * deleted. */ template -INLINE TYPENAME WeakPointerTo::To *WeakPointerTo:: +INLINE typename WeakPointerTo::To *WeakPointerTo:: get_orig() const { return (To *)WeakPointerToBase::_void_ptr; } @@ -158,7 +158,7 @@ operator = (const WeakPointerTo ©) { template INLINE WeakConstPointerTo:: WeakConstPointerTo(const To *ptr) : - WeakPointerToBase((TYPENAME WeakConstPointerTo::To *)ptr) + WeakPointerToBase((typename WeakConstPointerTo::To *)ptr) { } @@ -206,7 +206,7 @@ WeakConstPointerTo(const WeakConstPointerTo ©) : * */ template -INLINE const TYPENAME WeakConstPointerTo::To &WeakConstPointerTo:: +INLINE const typename WeakConstPointerTo::To &WeakConstPointerTo:: operator *() const { assert(!this->was_deleted()); return *((To *)WeakPointerToBase::_void_ptr); @@ -216,7 +216,7 @@ operator *() const { * */ template -INLINE const TYPENAME WeakConstPointerTo::To *WeakConstPointerTo:: +INLINE const typename WeakConstPointerTo::To *WeakConstPointerTo:: operator -> () const { assert(!this->was_deleted()); return (To *)WeakPointerToBase::_void_ptr; @@ -267,7 +267,7 @@ lock() const { * work around compiler problems, particularly for implicit upcasts. */ template -INLINE const TYPENAME WeakConstPointerTo::To *WeakConstPointerTo:: +INLINE const typename WeakConstPointerTo::To *WeakConstPointerTo:: p() const { assert(!this->was_deleted()); return (To *)WeakPointerToBase::_void_ptr; @@ -278,7 +278,7 @@ p() const { * deleted. */ template -INLINE const TYPENAME WeakConstPointerTo::To *WeakConstPointerTo:: +INLINE const typename WeakConstPointerTo::To *WeakConstPointerTo:: get_orig() const { return (To *)WeakPointerToBase::_void_ptr; } diff --git a/panda/src/express/weakPointerTo.h b/panda/src/express/weakPointerTo.h index ffc1d0dd3a..5834113b7a 100644 --- a/panda/src/express/weakPointerTo.h +++ b/panda/src/express/weakPointerTo.h @@ -28,7 +28,7 @@ template class WeakPointerTo : public WeakPointerToBase { public: - typedef TYPENAME WeakPointerToBase::To To; + typedef typename WeakPointerToBase::To To; PUBLISHED: INLINE WeakPointerTo(To *ptr = nullptr); INLINE WeakPointerTo(const PointerTo ©); @@ -64,7 +64,7 @@ PUBLISHED: template class WeakConstPointerTo : public WeakPointerToBase { public: - typedef TYPENAME WeakPointerToBase::To To; + typedef typename WeakPointerToBase::To To; PUBLISHED: INLINE WeakConstPointerTo(const To *ptr = nullptr); INLINE WeakConstPointerTo(const PointerTo ©); diff --git a/panda/src/putil/bitMask.I b/panda/src/putil/bitMask.I index 39d3a7742d..49e72fc3e7 100644 --- a/panda/src/putil/bitMask.I +++ b/panda/src/putil/bitMask.I @@ -168,7 +168,7 @@ is_all_on() const { * BitMask, shifted to the least-significant position. */ template -INLINE TYPENAME BitMask::WordType BitMask:: +INLINE typename BitMask::WordType BitMask:: extract(int low_bit, int size) const { return (_word >> low_bit) & BitMask::lower_on(size)._word; @@ -242,7 +242,7 @@ set_range_to(bool value, int low_bit, int size) { * Returns the entire BitMask as a single word. */ template -INLINE TYPENAME BitMask::WordType BitMask:: +INLINE typename BitMask::WordType BitMask:: get_word() const { return _word; } diff --git a/panda/src/putil/copyOnWritePointer.I b/panda/src/putil/copyOnWritePointer.I index 548844ca4e..2f5f79b281 100644 --- a/panda/src/putil/copyOnWritePointer.I +++ b/panda/src/putil/copyOnWritePointer.I @@ -357,11 +357,11 @@ operator = (PointerTo &&from) noexcept { * See CopyOnWritePointer::get_read_pointer(). */ template -INLINE CPT(TYPENAME CopyOnWritePointerTo::To) CopyOnWritePointerTo:: +INLINE CPT(typename CopyOnWritePointerTo::To) CopyOnWritePointerTo:: get_read_pointer(Thread *current_thread) const { // This is necessary because we don't currently have a way to cast between // two compatible PointerTo types without losing the reference count. - CPT(TYPENAME CopyOnWritePointerTo::To) to; + CPT(typename CopyOnWritePointerTo::To) to; CPT(CopyOnWriteObject) from = CopyOnWritePointer::get_read_pointer(current_thread); to.cheat() = (const To *)from.p(); from.cheat() = nullptr; @@ -372,7 +372,7 @@ get_read_pointer(Thread *current_thread) const { * See CopyOnWritePointer::get_read_pointer(). */ template -INLINE const TYPENAME CopyOnWritePointerTo::To *CopyOnWritePointerTo:: +INLINE const typename CopyOnWritePointerTo::To *CopyOnWritePointerTo:: get_read_pointer(Thread *current_thread) const { return (const To *)CopyOnWritePointer::get_read_pointer(current_thread); } @@ -385,11 +385,11 @@ get_read_pointer(Thread *current_thread) const { * See CopyOnWritePointer::get_write_pointer(). */ template -INLINE PT(TYPENAME CopyOnWritePointerTo::To) CopyOnWritePointerTo:: +INLINE PT(typename CopyOnWritePointerTo::To) CopyOnWritePointerTo:: get_write_pointer() { // This is necessary because we don't currently have a way to cast between // two compatible PointerTo types without losing the reference count. - PT(TYPENAME CopyOnWritePointerTo::To) to; + PT(typename CopyOnWritePointerTo::To) to; PT(CopyOnWriteObject) from = CopyOnWritePointer::get_write_pointer(); to.cheat() = (To *)from.p(); from.cheat() = nullptr; @@ -400,7 +400,7 @@ get_write_pointer() { * See CopyOnWritePointer::get_write_pointer(). */ template -INLINE TYPENAME CopyOnWritePointerTo::To *CopyOnWritePointerTo:: +INLINE typename CopyOnWritePointerTo::To *CopyOnWritePointerTo:: get_write_pointer() { return (To *)CopyOnWritePointer::get_write_pointer(); } @@ -412,7 +412,7 @@ get_write_pointer() { * See CopyOnWritePointer::get_unsafe_pointer(). */ template -INLINE TYPENAME CopyOnWritePointerTo::To *CopyOnWritePointerTo:: +INLINE typename CopyOnWritePointerTo::To *CopyOnWritePointerTo:: get_unsafe_pointer() { return (To *)(CopyOnWritePointer::get_unsafe_pointer()); } diff --git a/panda/src/putil/doubleBitMask.I b/panda/src/putil/doubleBitMask.I index 001dec7eb3..d99f8d0da0 100644 --- a/panda/src/putil/doubleBitMask.I +++ b/panda/src/putil/doubleBitMask.I @@ -167,7 +167,7 @@ is_all_on() const { * DoubleBitMask, shifted to the least-significant position. */ template -INLINE TYPENAME DoubleBitMask::WordType DoubleBitMask:: +INLINE typename DoubleBitMask::WordType DoubleBitMask:: extract(int low_bit, int size) const { if (low_bit >= half_bits) { return _hi.extract(low_bit - half_bits, size); diff --git a/panda/src/putil/doubleBitMask.h b/panda/src/putil/doubleBitMask.h index de17e6091b..2f1d1c5806 100644 --- a/panda/src/putil/doubleBitMask.h +++ b/panda/src/putil/doubleBitMask.h @@ -27,7 +27,7 @@ template class DoubleBitMask { public: - typedef TYPENAME BMType::WordType WordType; + typedef typename BMType::WordType WordType; PUBLISHED: typedef BMType BitMaskType; diff --git a/panda/src/putil/iterator_types.h b/panda/src/putil/iterator_types.h index 80d8f32882..ec90638237 100644 --- a/panda/src/putil/iterator_types.h +++ b/panda/src/putil/iterator_types.h @@ -24,7 +24,7 @@ template class first_of_pair_iterator : public pair_iterator { public: - typedef TYPENAME pair_iterator::value_type::first_type value_type; + typedef typename pair_iterator::value_type::first_type value_type; first_of_pair_iterator() = default; first_of_pair_iterator(const pair_iterator &init) : pair_iterator(init) { } @@ -42,7 +42,7 @@ public: template class second_of_pair_iterator : public pair_iterator { public: - typedef TYPENAME pair_iterator::value_type::second_type value_type; + typedef typename pair_iterator::value_type::second_type value_type; second_of_pair_iterator() = default; second_of_pair_iterator(const pair_iterator &init) : pair_iterator(init) { }