summaryrefslogtreecommitdiff
path: root/cpp/include/IceUtil
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/IceUtil')
-rw-r--r--cpp/include/IceUtil/Config.h20
-rw-r--r--cpp/include/IceUtil/Handle.h11
2 files changed, 31 insertions, 0 deletions
diff --git a/cpp/include/IceUtil/Config.h b/cpp/include/IceUtil/Config.h
index 8b2e99ca0a8..3e8ddd03ff0 100644
--- a/cpp/include/IceUtil/Config.h
+++ b/cpp/include/IceUtil/Config.h
@@ -221,4 +221,24 @@ typedef long long Int64;
#define ICE_STRING_VERSION "3.3.1" // "A.B.C", with A=major, B=minor, C=patch
#define ICE_INT_VERSION 30301 // AABBCC, with AA=major, BB=minor, CC=patch
+#if defined(__BCPLUSPLUS__) && (__BCPLUSPLUS__ >= 0x0600)
+//
+// Dummy class used in work around for bug in C++Builder 2009
+// http://qc.embarcadero/wc/qcmain.aspx?d=71611
+//
+namespace IceUtil
+{
+
+class DummyBCC
+{
+public:
+
+ ~DummyBCC()
+ {
+ }
+};
+
+}
+#endif
+
#endif
diff --git a/cpp/include/IceUtil/Handle.h b/cpp/include/IceUtil/Handle.h
index d466b4304ed..138a875f989 100644
--- a/cpp/include/IceUtil/Handle.h
+++ b/cpp/include/IceUtil/Handle.h
@@ -147,6 +147,17 @@ template<typename T>
class Handle : public HandleBase<T>
{
public:
+
+#if defined(__BCPLUSPLUS__) && (__BCPLUSPLUS__ >= 0x0600)
+ //
+ // C++Builder 2009 does not allow setting Ptr to 0.
+ //
+ Handle(int p)
+ {
+ assert(p == 0);
+ this->_ptr = 0;
+ }
+#endif
Handle(T* p = 0)
{