summaryrefslogtreecommitdiff
path: root/ACE/examples/APG/Containers/RB_Tree_Functors.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/examples/APG/Containers/RB_Tree_Functors.h')
-rw-r--r--ACE/examples/APG/Containers/RB_Tree_Functors.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/ACE/examples/APG/Containers/RB_Tree_Functors.h b/ACE/examples/APG/Containers/RB_Tree_Functors.h
new file mode 100644
index 00000000000..010fb5fda62
--- /dev/null
+++ b/ACE/examples/APG/Containers/RB_Tree_Functors.h
@@ -0,0 +1,37 @@
+/* -*- C++ -*- */
+// $Id$
+
+#ifndef __RB_TREE_FUNCTORS_H_
+#define __RB_TREE_FUNCTORS_H_
+
+#include "ace/Functor.h"
+
+// Listing 1 code/ch05
+// Same key type.
+class KeyType
+{
+public:
+ KeyType () : val_(0) {}
+ KeyType (int i) : val_ (i) {}
+ KeyType (const KeyType& kt) { this->val_ = kt.val_; }
+ operator int() const { return val_; };
+
+private:
+ int val_;
+};
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+template<>
+class ACE_Less_Than<KeyType>
+{
+public:
+ int operator() (const KeyType k1, const KeyType k2)
+ { return k1 < k2; }
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+// Listing 1
+
+#endif /* __RB_TREE_FUNCTORS_H_ */