summaryrefslogtreecommitdiff
path: root/ACE/ace/Array_Map.cpp
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2017-08-01 11:49:42 +0200
committerJohnny Willemsen <jwillemsen@remedy.nl>2017-08-01 11:49:42 +0200
commit81dc0cd3c3e79cc20dc4fc8aa74c2efef5e12d03 (patch)
treede0a32c639de5ca8d97229a6b3fed9b5fea6c9e1 /ACE/ace/Array_Map.cpp
parent277d69d4c1f71a874d34e135a684debf70b4c9c2 (diff)
downloadATCD-81dc0cd3c3e79cc20dc4fc8aa74c2efef5e12d03.tar.gz
Add workaround for broken bcc32, see RSP-15011
* ACE/ace/Array_Map.cpp: * ACE/ace/Array_Map.h:
Diffstat (limited to 'ACE/ace/Array_Map.cpp')
-rw-r--r--ACE/ace/Array_Map.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/ACE/ace/Array_Map.cpp b/ACE/ace/Array_Map.cpp
index ad441a65cad..4917c51e42f 100644
--- a/ACE/ace/Array_Map.cpp
+++ b/ACE/ace/Array_Map.cpp
@@ -43,8 +43,15 @@ ACE_Array_Map<Key, Value, EqualTo, Alloc>::ACE_Array_Map (
template<typename Key, typename Value, class EqualTo, class Alloc>
ACE_Array_Map<Key, Value, EqualTo, Alloc>::~ACE_Array_Map (void)
{
- for (size_t idx = 0; idx != capacity_; ++idx) {
+ for (size_t idx = 0; idx != capacity_; ++idx)
+ {
+#if defined (ACE_HAS_BCC32)
+ using std::pair;
+ (nodes_ + idx)->~pair<key_type, mapped_type>();
+#else
(nodes_ + idx)->~value_type();
+#endif
+
}
alloc_.deallocate(this->nodes_, capacity_);