summaryrefslogtreecommitdiff
path: root/cpp/include/IceUtil/Exception.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/IceUtil/Exception.h')
-rw-r--r--cpp/include/IceUtil/Exception.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/cpp/include/IceUtil/Exception.h b/cpp/include/IceUtil/Exception.h
index 0039364d884..ff1221f6731 100644
--- a/cpp/include/IceUtil/Exception.h
+++ b/cpp/include/IceUtil/Exception.h
@@ -27,7 +27,7 @@ public:
Exception();
Exception(const char*, int);
virtual ~Exception();
- virtual std::string ice_name() const;
+ virtual const std::string& ice_name() const;
virtual void ice_print(std::ostream&) const;
virtual Exception* ice_clone() const;
virtual void ice_throw() const;
@@ -38,6 +38,7 @@ private:
const char* _file;
int _line;
+ static ::std::string _name;
};
ICE_UTIL_API std::ostream& operator<<(std::ostream&, const Exception&);
@@ -47,9 +48,13 @@ class ICE_UTIL_API NullHandleException : public Exception
public:
NullHandleException(const char*, int);
- virtual std::string ice_name() const;
+ virtual const std::string& ice_name() const;
virtual Exception* ice_clone() const;
virtual void ice_throw() const;
+
+private:
+
+ static ::std::string _name;
};
}