summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames H. Hill <hilljh82@gmail.com>2011-02-18 22:21:16 +0000
committerJames H. Hill <hilljh82@gmail.com>2011-02-18 22:21:16 +0000
commitcfa8217795918e17c0c2fd86657e179e108c4bbe (patch)
treeca99d2c22905e922513f29b7bb7f23732b2f6a6a
parent0e3421f521348a82905557f370ae32804fe68d1e (diff)
downloadATCD-cfa8217795918e17c0c2fd86657e179e108c4bbe.tar.gz
Fri Feb 18 22:20:42 UTC 2011 James H. Hill <hillj at cs dot iupui dot edu>
-rw-r--r--ACE/ChangeLog7
-rw-r--r--ACE/ace/Functor_String.h39
-rw-r--r--ACE/ace/Functor_String.inl20
3 files changed, 66 insertions, 0 deletions
diff --git a/ACE/ChangeLog b/ACE/ChangeLog
index b7b317c1927..897bc38d25e 100644
--- a/ACE/ChangeLog
+++ b/ACE/ChangeLog
@@ -1,3 +1,10 @@
+Fri Feb 18 22:20:42 UTC 2011 James H. Hill <hillj at cs dot iupui dot edu>
+
+ * ace/Functor_String.h:
+ * ace/Functor_String.inl:
+
+ Specialized the string functors for std::string.
+
Fri Feb 18 13:37:44 UTC 2011 Olli Savia <ops@iki.fi>
* include/makeinclude/platform_lynxos.GNU:
diff --git a/ACE/ace/Functor_String.h b/ACE/ace/Functor_String.h
index 1b9d8f90d6d..5a35e68d9d7 100644
--- a/ACE/ace/Functor_String.h
+++ b/ACE/ace/Functor_String.h
@@ -25,6 +25,7 @@
#include /**/ "ace/ACE_export.h"
#include "ace/SStringfwd.h"
+#include <string>
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -77,6 +78,44 @@ public:
const ACE_CString &rhs) const;
};
+/**
+ * @brief Function object for determining whether two std::strings are
+ * equal.
+ */
+template<>
+class ACE_Export ACE_Equal_To<std::string>
+{
+public:
+ int operator () (const std::string &lhs,
+ const std::string &rhs) const;
+};
+
+
+/**
+ * @brief Function object for hashing a std::string
+ */
+template<>
+class ACE_Export ACE_Hash<std::string>
+{
+public:
+ /// Calls ACE::hash_pjw
+ unsigned long operator () (const std::string &lhs) const;
+};
+
+
+/**
+ * @brief Function object for determining whether the first const string
+ * is less than the second const string.
+ */
+template<>
+class ACE_Export ACE_Less_Than<std::string>
+{
+public:
+ /// Simply calls std::string::compare
+ int operator () (const std::string &lhs,
+ const std::string &rhs) const;
+};
+
#if defined (ACE_USES_WCHAR)
diff --git a/ACE/ace/Functor_String.inl b/ACE/ace/Functor_String.inl
index 82e8775a718..34eedd8613d 100644
--- a/ACE/ace/Functor_String.inl
+++ b/ACE/ace/Functor_String.inl
@@ -28,6 +28,26 @@ ACE_Less_Than<ACE_CString>::operator () (const ACE_CString &lhs,
return (lhs < rhs);
}
+ACE_INLINE unsigned long
+ACE_Hash<std::string>::operator () (const std::string &t) const
+{
+ return ACE::hash_pjw (t.c_str (), t.length ());
+}
+
+
+ACE_INLINE int
+ACE_Equal_To<std::string>::operator () (const std::string &lhs,
+ const std::string &rhs) const
+{
+ return lhs == rhs;
+}
+
+ACE_INLINE int
+ACE_Less_Than<std::string>::operator () (const std::string &lhs,
+ const std::string &rhs) const
+{
+ return (lhs < rhs);
+}
#if defined (ACE_USES_WCHAR)
ACE_INLINE unsigned long