diff options
author | Adam Mitz <mitza@ociweb.com> | 2015-11-06 17:07:11 -0600 |
---|---|---|
committer | Adam Mitz <mitza@ociweb.com> | 2015-11-06 17:07:11 -0600 |
commit | ac5e1702c9f9bee9f1f7bfce8c1a6f3847ea6b4b (patch) | |
tree | 0e70d1f51c39e688a05a6cdc2af58408222e4a0d /ACE/ace/Array_Map.inl | |
parent | 5272b5b81f92c298cb998b5bb0b0dbca3e7f29fe (diff) | |
download | ATCD-ac5e1702c9f9bee9f1f7bfce8c1a6f3847ea6b4b.tar.gz |
Merged branch ace-face-safety (FACE Safety Profile import from OCITAO).
Diffstat (limited to 'ACE/ace/Array_Map.inl')
-rw-r--r-- | ACE/ace/Array_Map.inl | 105 |
1 files changed, 53 insertions, 52 deletions
diff --git a/ACE/ace/Array_Map.inl b/ACE/ace/Array_Map.inl index c331fae801e..32e7848c02d 100644 --- a/ACE/ace/Array_Map.inl +++ b/ACE/ace/Array_Map.inl @@ -1,129 +1,130 @@ // -*- C++ -*- ACE_BEGIN_VERSIONED_NAMESPACE_DECL -template<typename Key, typename Value, class EqualTo> +template<typename Key, typename Value, class EqualTo, class Alloc> ACE_INLINE -ACE_Array_Map<Key, Value, EqualTo>::ACE_Array_Map ( - typename ACE_Array_Map<Key, Value, EqualTo>::size_type s) +ACE_Array_Map<Key, Value, EqualTo, Alloc>::ACE_Array_Map ( + typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::size_type s) : size_ (0) , capacity_ (s) - , nodes_ (s == 0 ? 0 : new value_type[s]) + , nodes_ (s == 0 ? 0 : this->alloc_.allocate (s)) { + std::uninitialized_fill_n (this->nodes_, s, value_type ()); } -template<typename Key, typename Value, class EqualTo> -ACE_INLINE ACE_Array_Map<Key, Value, EqualTo> & -ACE_Array_Map<Key, Value, EqualTo>::operator= ( - ACE_Array_Map<Key, Value, EqualTo> const & map) +template<typename Key, typename Value, class EqualTo, class Alloc> +ACE_INLINE ACE_Array_Map<Key, Value, EqualTo, Alloc> & +ACE_Array_Map<Key, Value, EqualTo, Alloc>::operator= ( + ACE_Array_Map<Key, Value, EqualTo, Alloc> const & map) { // Strongly exception-safe assignment. - ACE_Array_Map<Key, Value, EqualTo> temp (map); + ACE_Array_Map<Key, Value, EqualTo, Alloc> temp (map); this->swap (temp); return *this; } -template<typename Key, typename Value, class EqualTo> -ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::iterator -ACE_Array_Map<Key, Value, EqualTo>::begin (void) +template<typename Key, typename Value, class EqualTo, class Alloc> +ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::iterator +ACE_Array_Map<Key, Value, EqualTo, Alloc>::begin (void) { return this->nodes_; } -template<typename Key, typename Value, class EqualTo> -ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::iterator -ACE_Array_Map<Key, Value, EqualTo>::end (void) +template<typename Key, typename Value, class EqualTo, class Alloc> +ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::iterator +ACE_Array_Map<Key, Value, EqualTo, Alloc>::end (void) { return this->nodes_ + this->size_; } -template<typename Key, typename Value, class EqualTo> -ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::const_iterator -ACE_Array_Map<Key, Value, EqualTo>::begin (void) const +template<typename Key, typename Value, class EqualTo, class Alloc> +ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::const_iterator +ACE_Array_Map<Key, Value, EqualTo, Alloc>::begin (void) const { return this->nodes_; } -template<typename Key, typename Value, class EqualTo> -ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::const_iterator -ACE_Array_Map<Key, Value, EqualTo>::end (void) const +template<typename Key, typename Value, class EqualTo, class Alloc> +ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::const_iterator +ACE_Array_Map<Key, Value, EqualTo, Alloc>::end (void) const { return this->nodes_ + this->size_; } -template<typename Key, typename Value, class EqualTo> -ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::reverse_iterator -ACE_Array_Map<Key, Value, EqualTo>::rbegin (void) +template<typename Key, typename Value, class EqualTo, class Alloc> +ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::reverse_iterator +ACE_Array_Map<Key, Value, EqualTo, Alloc>::rbegin (void) { return reverse_iterator (this->end ()); } -template<typename Key, typename Value, class EqualTo> -ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::reverse_iterator -ACE_Array_Map<Key, Value, EqualTo>::rend (void) +template<typename Key, typename Value, class EqualTo, class Alloc> +ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::reverse_iterator +ACE_Array_Map<Key, Value, EqualTo, Alloc>::rend (void) { return reverse_iterator (this->begin ()); } -template<typename Key, typename Value, class EqualTo> -ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::const_reverse_iterator -ACE_Array_Map<Key, Value, EqualTo>::rbegin (void) const +template<typename Key, typename Value, class EqualTo, class Alloc> +ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::const_reverse_iterator +ACE_Array_Map<Key, Value, EqualTo, Alloc>::rbegin (void) const { return const_reverse_iterator (this->end ()); } -template<typename Key, typename Value, class EqualTo> -ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::const_reverse_iterator -ACE_Array_Map<Key, Value, EqualTo>::rend (void) const +template<typename Key, typename Value, class EqualTo, class Alloc> +ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::const_reverse_iterator +ACE_Array_Map<Key, Value, EqualTo, Alloc>::rend (void) const { return const_reverse_iterator (this->begin ()); } -template<typename Key, typename Value, class EqualTo> -ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::size_type -ACE_Array_Map<Key, Value, EqualTo>::size (void) const +template<typename Key, typename Value, class EqualTo, class Alloc> +ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::size_type +ACE_Array_Map<Key, Value, EqualTo, Alloc>::size (void) const { return this->size_; } -template<typename Key, typename Value, class EqualTo> -ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::size_type -ACE_Array_Map<Key, Value, EqualTo>::max_size (void) const +template<typename Key, typename Value, class EqualTo, class Alloc> +ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::size_type +ACE_Array_Map<Key, Value, EqualTo, Alloc>::max_size (void) const { return size_type (-1) / sizeof (value_type); } -template<typename Key, typename Value, class EqualTo> +template<typename Key, typename Value, class EqualTo, class Alloc> ACE_INLINE bool -ACE_Array_Map<Key, Value, EqualTo>::is_empty (void) const +ACE_Array_Map<Key, Value, EqualTo, Alloc>::is_empty (void) const { return this->size_ == 0; } // The following method is deprecated. -template<typename Key, typename Value, class EqualTo> +template<typename Key, typename Value, class EqualTo, class Alloc> ACE_INLINE bool -ACE_Array_Map<Key, Value, EqualTo>::empty (void) const +ACE_Array_Map<Key, Value, EqualTo, Alloc>::empty (void) const { return this->is_empty (); } -template<typename Key, typename Value, class EqualTo> -ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::size_type -ACE_Array_Map<Key, Value, EqualTo>::count ( - typename ACE_Array_Map<Key, Value, EqualTo>::key_type const & k) +template<typename Key, typename Value, class EqualTo, class Alloc> +ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::size_type +ACE_Array_Map<Key, Value, EqualTo, Alloc>::count ( + typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::key_type const & k) { return (this->find (k) == this->end () ? 0 : 1); // Only one datum per key. } -template<typename Key, typename Value, class EqualTo> -ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo>::data_type & -ACE_Array_Map<Key, Value, EqualTo>::operator[] ( - typename ACE_Array_Map<Key, Value, EqualTo>::key_type const & k) +template<typename Key, typename Value, class EqualTo, class Alloc> +ACE_INLINE typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::mapped_type & +ACE_Array_Map<Key, Value, EqualTo, Alloc>::operator[] ( + typename ACE_Array_Map<Key, Value, EqualTo, Alloc>::key_type const & k) { - iterator i = (this->insert (value_type (k, data_type ()))).first; + iterator i = (this->insert (value_type (k, mapped_type ()))).first; return (*i).second; } |