diff options
-rw-r--r-- | ChangeLog-99b | 7 | ||||
-rw-r--r-- | TAO/ChangeLog-99c | 5 | ||||
-rw-r--r-- | TAO/examples/Simulator/DOVEMIB/clnt.h | 17 | ||||
-rw-r--r-- | ace/config-psos-diab-ppc.h | 2 | ||||
-rw-r--r-- | tests/RB_Tree_Test.cpp | 193 |
5 files changed, 128 insertions, 96 deletions
diff --git a/ChangeLog-99b b/ChangeLog-99b index 35727955a68..33515bd116d 100644 --- a/ChangeLog-99b +++ b/ChangeLog-99b @@ -1,3 +1,10 @@ +Wed Jun 9 21:10:00 1999 Chris Gill <cdgill@cs.wustl.edu> + + * ace/config-psos-diab-ppc.h: added ACE_HAS_NONCONST_SELECT_TIMEVAL + + * tests/RB_Tree_Test.cpp: fixed constness issues revealed by SunC++ + 5.0, added return value assertions for insert calls, added typedefs. + Wed Jun 9 20:40:50 1999 Carlos O'Ryan <coryan@cs.wustl.edu> * ace/CDR_Stream.h: diff --git a/TAO/ChangeLog-99c b/TAO/ChangeLog-99c index 1fe42a08373..e5480091b0c 100644 --- a/TAO/ChangeLog-99c +++ b/TAO/ChangeLog-99c @@ -1,3 +1,8 @@ +Wed Jun 9 21:13:00 1999 Chris Gill <cdgill@cs.wustl.edu> + + * examples/Simulator/DOVEMIB/clnt.h: moved CORBA::ORB_var + member declaration first in the class. + Wed Jun 9 20:16:36 1999 Carlos O'Ryan <coryan@cs.wustl.edu> * Started the work on GIOP 1.1, the current version is still diff --git a/TAO/examples/Simulator/DOVEMIB/clnt.h b/TAO/examples/Simulator/DOVEMIB/clnt.h index bec38868e21..c5582c2dd9b 100644 --- a/TAO/examples/Simulator/DOVEMIB/clnt.h +++ b/TAO/examples/Simulator/DOVEMIB/clnt.h @@ -42,11 +42,19 @@ public: // Initialize the client communication endpoint with server. private: + + CORBA::ORB_var orb_; + // Remember our orb: this needs to be declared before any member that + // depends on it so it is constructed before and destroyed after them. + Navigation navigation_; + // Navigation data structure. + Weapons weapons_; + // Weapons data structure. Any_Test_ptr any_test_ptr_; - // Reverse_ptr reverse_ptr_; + // Reverse_ptr reverse_ptr_; int argc_; // # of arguments on the command line. @@ -54,14 +62,7 @@ private: char **argv_; // arguments from command line. - CORBA::Environment env_; // Environment variable - CORBA::ORB_var orb_; - // Remember our orb }; - - - - diff --git a/ace/config-psos-diab-ppc.h b/ace/config-psos-diab-ppc.h index 551d99cbda5..8bc6f9cf027 100644 --- a/ace/config-psos-diab-ppc.h +++ b/ace/config-psos-diab-ppc.h @@ -89,6 +89,8 @@ #define ACE_HAS_NONSTATIC_OBJECT_MANAGER +#define ACE_HAS_NONCONST_SELECT_TIMEVAL + #define ACE_LACKS_SEMBUF_T #define ACE_LACKS_EXEC diff --git a/tests/RB_Tree_Test.cpp b/tests/RB_Tree_Test.cpp index a5edd805bd2..eaaaeb21eae 100644 --- a/tests/RB_Tree_Test.cpp +++ b/tests/RB_Tree_Test.cpp @@ -13,11 +13,11 @@ // and ACE_RB_Tree_Iterator classes. Two different key and item types are // used in order to demonstrate specialization of the ACE_Less_Than // comparison function object template: int (for which the native < -// operator is sufficient), and char * (for which < operator semantics must -// be replaced by strcmp semantics). An RB tree for each of the four -// possible type parameter permutations over int and char * is constructed -// and filled in, and the resulting order is checked via an iterator over -// each. +// operator is sufficient), and const char * (for which < operator +// semantics must be replaced by strcmp semantics). An RB tree for each of +// the four possible type parameter permutations over int and const char * +// is constructed and filled in, and the resulting order is checked via an +// iterator over each. // // = AUTHOR // Chris Gill <cdgill@cs.wustl.edu> @@ -34,16 +34,34 @@ USELIB("..\ace\aced.lib"); //--------------------------------------------------------------------------- #endif /* defined(__BORLANDC__) && __BORLANDC__ >= 0x0530 */ +// Type definitions for the four distinct parameterizations of ACE_RB_Tree +// and its iterators. + +typedef ACE_RB_Tree<int, int, ACE_Less_Than<int>, ACE_Null_Mutex> INT_INT_RB_TREE; +typedef ACE_RB_Tree<int, const char *, ACE_Less_Than<int>, ACE_Null_Mutex> INT_STR_RB_TREE; +typedef ACE_RB_Tree<const char *, int, ACE_Less_Than<const char *>, ACE_Null_Mutex> STR_INT_RB_TREE; +typedef ACE_RB_Tree<const char *, const char *, ACE_Less_Than<const char *>, ACE_Null_Mutex> STR_STR_RB_TREE; + +typedef ACE_RB_Tree_Iterator<int, int, ACE_Less_Than<int>, ACE_Null_Mutex> INT_INT_FWD_ITER; +typedef ACE_RB_Tree_Iterator<int, const char *, ACE_Less_Than<int>, ACE_Null_Mutex> INT_STR_FWD_ITER; +typedef ACE_RB_Tree_Iterator<const char *, int, ACE_Less_Than<const char *>, ACE_Null_Mutex> STR_INT_FWD_ITER; +typedef ACE_RB_Tree_Iterator<const char *, const char *, ACE_Less_Than<const char *>, ACE_Null_Mutex> STR_STR_FWD_ITER; + +typedef ACE_RB_Tree_Reverse_Iterator<int, int, ACE_Less_Than<int>, ACE_Null_Mutex> INT_INT_REV_ITER; +typedef ACE_RB_Tree_Reverse_Iterator<int, const char *, ACE_Less_Than<int>, ACE_Null_Mutex> INT_STR_REV_ITER; +typedef ACE_RB_Tree_Reverse_Iterator<const char *, int, ACE_Less_Than<const char *>, ACE_Null_Mutex> STR_INT_REV_ITER; +typedef ACE_RB_Tree_Reverse_Iterator<const char *, const char *, ACE_Less_Than<const char *>, ACE_Null_Mutex> STR_STR_REV_ITER; + + // These arrays of numbers as ints and character strings // are used to instantiate key and item nodes in the tree. -// @@ Chris, the following should be a "const char *" not a "char *". -static char *number_strings [] = +static const char *number_strings [] = { "10", "20", "30", "40", "50", "60", "70", "80" }; -static int number_integers [] = +static int number_integers [] = { 10, 20, 30, 40, 50, 60, 70, 80 }; @@ -76,14 +94,14 @@ main (int, ASYS_TCHAR *[]) // comparisons rather than < operator comparison of the pointers // themselves. - // @@ Chris, the following definitions are (1) not const-correct, - // (2) should be factored out into typedefs so that the code is - // readable, and (3) each variable should be defined 1 per line. - - ACE_RB_Tree<int, int, ACE_Less_Than<int>, ACE_Null_Mutex> int_int_tree1, int_int_tree2; - ACE_RB_Tree<int, char *, ACE_Less_Than<int>, ACE_Null_Mutex> int_str_tree1, int_str_tree2; - ACE_RB_Tree<char *, int, ACE_Less_Than<char *>, ACE_Null_Mutex> str_int_tree1, str_int_tree2; - ACE_RB_Tree<char *, char *, ACE_Less_Than<char *>, ACE_Null_Mutex> str_str_tree1, str_str_tree2; + INT_INT_RB_TREE int_int_tree1; + INT_INT_RB_TREE int_int_tree2; + INT_STR_RB_TREE int_str_tree1; + INT_STR_RB_TREE int_str_tree2; + STR_INT_RB_TREE str_int_tree1; + STR_INT_RB_TREE str_int_tree2; + STR_STR_RB_TREE str_str_tree1; + STR_STR_RB_TREE str_str_tree2; // First, test the new ACE_Hash_Map_Manager_Ex compliant interface. // Fill in each tree with the key and item from the appropriate @@ -94,39 +112,38 @@ main (int, ASYS_TCHAR *[]) i < RB_TREE_TEST_ENTRIES; ++i) { - char *str_item; + const char *str_item; int int_item; k = int_int_index [i]; ACE_ASSERT (k >= 0 && k < RB_TREE_TEST_ENTRIES); int_item = -1; - // @@ Chris, shouldn't you be checking return values here to - // make sure this call worked (same for all calls below)? - int_int_tree1.insert (number_integers [k], - number_integers [k]); + ACE_ASSERT (int_int_tree1.insert (number_integers [k], + number_integers [k]) != 0); ACE_ASSERT (int_int_tree1.find (number_integers [k], int_item) == 0 && int_item == number_integers [k]); k = int_str_index [i]; ACE_ASSERT (k >= 0 && k < RB_TREE_TEST_ENTRIES); str_item = 0; - int_str_tree1.insert (number_integers [k], - number_strings [k]); + ACE_ASSERT (int_str_tree1.insert (number_integers [k], + number_strings [k]) != 0); ACE_ASSERT (int_str_tree1.find (number_integers [k], str_item) == 0 && str_item == number_strings [k]); k = str_int_index [i]; ACE_ASSERT (k >= 0 && k < RB_TREE_TEST_ENTRIES); int_item = -1; - str_int_tree1.insert (number_strings [k], number_integers [k]); + ACE_ASSERT (str_int_tree1.insert (number_strings [k], + number_integers [k]) != 0); ACE_ASSERT (str_int_tree1.find (number_strings [k], int_item) == 0 && int_item == number_integers [k]); k = str_str_index [i]; ACE_ASSERT (k >= 0 && k < RB_TREE_TEST_ENTRIES); str_item = 0; - str_str_tree1.insert (number_strings [k], - number_strings [k]); + ACE_ASSERT (str_str_tree1.insert (number_strings [k], + number_strings [k]) != 0); ACE_ASSERT (str_str_tree1.find (number_strings [k], str_item) == 0 && str_item == number_strings [k]); } @@ -142,58 +159,58 @@ main (int, ASYS_TCHAR *[]) { k = int_int_index [i]; ACE_ASSERT (k >= 0 && k < RB_TREE_TEST_ENTRIES); - int_int_tree2.insert (number_integers [k], - number_integers [k]); + ACE_ASSERT (int_int_tree2.insert (number_integers [k], + number_integers [k]) != 0); ACE_ASSERT (int_int_tree2.find (number_integers [k]) != 0 && *int_int_tree2.find (number_integers [k]) == number_integers [k]); k = int_str_index [i]; ACE_ASSERT (k >= 0 && k < RB_TREE_TEST_ENTRIES); - int_str_tree2.insert (number_integers [k], - number_strings [k]); + ACE_ASSERT (int_str_tree2.insert (number_integers [k], + number_strings [k]) != 0); ACE_ASSERT (int_str_tree2.find (number_integers [k]) != 0 - && *int_str_tree2.find (number_integers [k]) == number_strings [k]); + && *int_str_tree2.find (number_integers [k]) == + number_strings [k]); k = str_int_index [i]; ACE_ASSERT (k >= 0 && k < RB_TREE_TEST_ENTRIES); - str_int_tree2.insert (number_strings [k], - number_integers [k]); + ACE_ASSERT (str_int_tree2.insert (number_strings [k], + number_integers [k]) != 0); ACE_ASSERT (str_int_tree2.find (number_strings [k]) != 0 - && *str_int_tree2.find (number_strings [k]) == number_integers [k]); + && *str_int_tree2.find (number_strings [k]) == + number_integers [k]); k = str_str_index [i]; ACE_ASSERT (k >= 0 && k < RB_TREE_TEST_ENTRIES); - str_str_tree2.insert (number_strings [k], - number_strings [k]); + ACE_ASSERT (str_str_tree2.insert (number_strings [k], + number_strings [k]) != 0); ACE_ASSERT (str_str_tree2.find (number_strings [k]) != 0 - && *str_str_tree2.find (number_strings [k]) == number_strings [k]); + && *str_str_tree2.find (number_strings [k]) == + number_strings [k]); } // Construct a forward and reverse iterator for each of the trees. - // @@ Chris, these should also be typedef'd at the beginning of the - // file and cleaned up to be const-correct. - - ACE_RB_Tree_Iterator<int, int, ACE_Less_Than<int>, ACE_Null_Mutex> int_int_iter1 (int_int_tree1); - ACE_RB_Tree_Iterator<int, char *, ACE_Less_Than<int>, ACE_Null_Mutex> int_str_iter1 (int_str_tree1); - ACE_RB_Tree_Iterator<char *, int, ACE_Less_Than<char *>, ACE_Null_Mutex> str_int_iter1 (str_int_tree1); - ACE_RB_Tree_Iterator<char *, char *, ACE_Less_Than<char *>, ACE_Null_Mutex> str_str_iter1 (str_str_tree1); + INT_INT_FWD_ITER int_int_iter1 (int_int_tree1); + INT_STR_FWD_ITER int_str_iter1 (int_str_tree1); + STR_INT_FWD_ITER str_int_iter1 (str_int_tree1); + STR_STR_FWD_ITER str_str_iter1 (str_str_tree1); - ACE_RB_Tree_Reverse_Iterator<int, int, ACE_Less_Than<int>, ACE_Null_Mutex> int_int_rev_iter1 (int_int_tree1); - ACE_RB_Tree_Reverse_Iterator<int, char *, ACE_Less_Than<int>, ACE_Null_Mutex> int_str_rev_iter1 (int_str_tree1); - ACE_RB_Tree_Reverse_Iterator<char *, int, ACE_Less_Than<char *>, ACE_Null_Mutex> str_int_rev_iter1 (str_int_tree1); - ACE_RB_Tree_Reverse_Iterator<char *, char *, ACE_Less_Than<char *>, ACE_Null_Mutex> str_str_rev_iter1 (str_str_tree1); + INT_INT_REV_ITER int_int_rev_iter1 (int_int_tree1); + INT_STR_REV_ITER int_str_rev_iter1 (int_str_tree1); + STR_INT_REV_ITER str_int_rev_iter1 (str_int_tree1); + STR_STR_REV_ITER str_str_rev_iter1 (str_str_tree1); - ACE_RB_Tree_Iterator<int, int, ACE_Less_Than<int>, ACE_Null_Mutex> int_int_iter2 (int_int_tree2); - ACE_RB_Tree_Iterator<int, char *, ACE_Less_Than<int>, ACE_Null_Mutex> int_str_iter2 (int_str_tree2); - ACE_RB_Tree_Iterator<char *, int, ACE_Less_Than<char *>, ACE_Null_Mutex> str_int_iter2 (str_int_tree2); - ACE_RB_Tree_Iterator<char *, char *, ACE_Less_Than<char *>, ACE_Null_Mutex> str_str_iter2 (str_str_tree2); + INT_INT_FWD_ITER int_int_iter2 (int_int_tree2); + INT_STR_FWD_ITER int_str_iter2 (int_str_tree2); + STR_INT_FWD_ITER str_int_iter2 (str_int_tree2); + STR_STR_FWD_ITER str_str_iter2 (str_str_tree2); - ACE_RB_Tree_Reverse_Iterator<int, int, ACE_Less_Than<int>, ACE_Null_Mutex> int_int_rev_iter2 (int_int_tree2); - ACE_RB_Tree_Reverse_Iterator<int, char *, ACE_Less_Than<int>, ACE_Null_Mutex> int_str_rev_iter2 (int_str_tree2); - ACE_RB_Tree_Reverse_Iterator<char *, int, ACE_Less_Than<char *>, ACE_Null_Mutex> str_int_rev_iter2 (str_int_tree2); - ACE_RB_Tree_Reverse_Iterator<char *, char *, ACE_Less_Than<char *>, ACE_Null_Mutex> str_str_rev_iter2 (str_str_tree2); + INT_INT_REV_ITER int_int_rev_iter2 (int_int_tree2); + INT_STR_REV_ITER int_str_rev_iter2 (int_str_tree2); + STR_INT_REV_ITER str_int_rev_iter2 (str_int_tree2); + STR_STR_REV_ITER str_str_rev_iter2 (str_str_tree2); // Iterate over each of the trees, making sure their entries are in // the same relative order (i.e., the integers and strings represent @@ -202,7 +219,7 @@ main (int, ASYS_TCHAR *[]) i < RB_TREE_TEST_ENTRIES; ++i) { - char *str_item; + const char *str_item; int int_item; int_item = (*int_int_iter1).item (); @@ -341,7 +358,7 @@ main (int, ASYS_TCHAR *[]) i < RB_TREE_TEST_ENTRIES; i += 2) { - char *str_item; + const char *str_item; int int_item; int_item = (*int_int_iter1).item (); @@ -439,21 +456,21 @@ template class ACE_RB_Tree_Node<int, int>; template class ACE_RB_Tree_Iterator_Base<int, int, ACE_Less_Than<int>, ACE_Null_Mutex>; template class ACE_RB_Tree_Iterator<int, int, ACE_Less_Than<int>, ACE_Null_Mutex>; template class ACE_RB_Tree_Reverse_Iterator<int, int, ACE_Less_Than<int>, ACE_Null_Mutex>; -template class ACE_RB_Tree<int, char *, ACE_Less_Than<int>, ACE_Null_Mutex>; -template class ACE_RB_Tree_Node<int, char *>; -template class ACE_RB_Tree_Iterator_Base<int, char *, ACE_Less_Than<int>, ACE_Null_Mutex>; -template class ACE_RB_Tree_Iterator<int, char *, ACE_Less_Than<int>, ACE_Null_Mutex>; -template class ACE_RB_Tree_Reverse_Iterator<int, char *, ACE_Less_Than<int>, ACE_Null_Mutex>; -template class ACE_RB_Tree<char *, int, ACE_Less_Than<char *>, ACE_Null_Mutex>; -template class ACE_RB_Tree_Node<char *, int>; -template class ACE_RB_Tree_Iterator_Base<char *, int, ACE_Less_Than<char *>, ACE_Null_Mutex>; -template class ACE_RB_Tree_Iterator<char *, int, ACE_Less_Than<char *>, ACE_Null_Mutex>; -template class ACE_RB_Tree_Reverse_Iterator<char *, int, ACE_Less_Than<char *>, ACE_Null_Mutex>; -template class ACE_RB_Tree<char *, char *, ACE_Less_Than<char *>, ACE_Null_Mutex>; -template class ACE_RB_Tree_Node<char *, char *>; -template class ACE_RB_Tree_Iterator_Base<char *, char *, ACE_Less_Than<char *>, ACE_Null_Mutex>; -template class ACE_RB_Tree_Iterator<char *, char *, ACE_Less_Than<char *>, ACE_Null_Mutex>; -template class ACE_RB_Tree_Reverse_Iterator<char *, char *, ACE_Less_Than<char *>, ACE_Null_Mutex>; +template class ACE_RB_Tree<int, const char *, ACE_Less_Than<int>, ACE_Null_Mutex>; +template class ACE_RB_Tree_Node<int, const char *>; +template class ACE_RB_Tree_Iterator_Base<int, const char *, ACE_Less_Than<int>, ACE_Null_Mutex>; +template class ACE_RB_Tree_Iterator<int, const char *, ACE_Less_Than<int>, ACE_Null_Mutex>; +template class ACE_RB_Tree_Reverse_Iterator<int, const char *, ACE_Less_Than<int>, ACE_Null_Mutex>; +template class ACE_RB_Tree<const char *, int, ACE_Less_Than<const char *>, ACE_Null_Mutex>; +template class ACE_RB_Tree_Node<const char *, int>; +template class ACE_RB_Tree_Iterator_Base<const char *, int, ACE_Less_Than<const char *>, ACE_Null_Mutex>; +template class ACE_RB_Tree_Iterator<const char *, int, ACE_Less_Than<const char *>, ACE_Null_Mutex>; +template class ACE_RB_Tree_Reverse_Iterator<const char *, int, ACE_Less_Than<const char *>, ACE_Null_Mutex>; +template class ACE_RB_Tree<const char *, const char *, ACE_Less_Than<const char *>, ACE_Null_Mutex>; +template class ACE_RB_Tree_Node<const char *, const char *>; +template class ACE_RB_Tree_Iterator_Base<const char *, const char *, ACE_Less_Than<const char *>, ACE_Null_Mutex>; +template class ACE_RB_Tree_Iterator<const char *, const char *, ACE_Less_Than<const char *>, ACE_Null_Mutex>; +template class ACE_RB_Tree_Reverse_Iterator<const char *, const char *, ACE_Less_Than<const char *>, ACE_Null_Mutex>; template class ACE_Less_Than<int>; #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) @@ -463,21 +480,21 @@ template class ACE_Less_Than<int>; #pragma instantiate ACE_RB_Tree_Iterator_Base<int, int, ACE_Less_Than<int>, ACE_Null_Mutex> #pragma instantiate ACE_RB_Tree_Iterator<int, int, ACE_Less_Than<int>, ACE_Null_Mutex> #pragma instantiate ACE_RB_Tree_Reverse_Iterator<int, int, ACE_Less_Than<int>, ACE_Null_Mutex> -#pragma instantiate ACE_RB_Tree<int, char *, ACE_Less_Than<int>, ACE_Null_Mutex> -#pragma instantiate ACE_RB_Tree_Node<int, char *> -#pragma instantiate ACE_RB_Tree_Iterator_Base<int, char *, ACE_Less_Than<int>, ACE_Null_Mutex> -#pragma instantiate ACE_RB_Tree_Iterator<int, char *, ACE_Less_Than<int>, ACE_Null_Mutex> -#pragma instantiate ACE_RB_Tree_Reverse_Iterator<int, char *, ACE_Less_Than<int>, ACE_Null_Mutex> -#pragma instantiate ACE_RB_Tree<char *, int, ACE_Less_Than<char *>, ACE_Null_Mutex> -#pragma instantiate ACE_RB_Tree_Node<char *, int> -#pragma instantiate ACE_RB_Tree_Iterator_Base<char *, int, ACE_Less_Than<char *>, ACE_Null_Mutex> -#pragma instantiate ACE_RB_Tree_Iterator<char *, int, ACE_Less_Than<char *>, ACE_Null_Mutex> -#pragma instantiate ACE_RB_Tree_Reverse_Iterator<char *, int, ACE_Less_Than<char *>, ACE_Null_Mutex> -#pragma instantiate ACE_RB_Tree<char *, char *, ACE_Less_Than<char *>, ACE_Null_Mutex> -#pragma instantiate ACE_RB_Tree_Node<char *, char *> -#pragma instantiate ACE_RB_Tree_Iterator_Base<char *, char *, ACE_Less_Than<char *>, ACE_Null_Mutex> -#pragma instantiate ACE_RB_Tree_Iterator<char *, char *, ACE_Less_Than<char *>, ACE_Null_Mutex> -#pragma instantiate ACE_RB_Tree_Reverse_Iterator<char *, char *, ACE_Less_Than<char *>, ACE_Null_Mutex> +#pragma instantiate ACE_RB_Tree<int, const char *, ACE_Less_Than<int>, ACE_Null_Mutex> +#pragma instantiate ACE_RB_Tree_Node<int, const char *> +#pragma instantiate ACE_RB_Tree_Iterator_Base<int, const char *, ACE_Less_Than<int>, ACE_Null_Mutex> +#pragma instantiate ACE_RB_Tree_Iterator<int, const char *, ACE_Less_Than<int>, ACE_Null_Mutex> +#pragma instantiate ACE_RB_Tree_Reverse_Iterator<int, const char *, ACE_Less_Than<int>, ACE_Null_Mutex> +#pragma instantiate ACE_RB_Tree<const char *, int, ACE_Less_Than<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_RB_Tree_Node<const char *, int> +#pragma instantiate ACE_RB_Tree_Iterator_Base<const char *, int, ACE_Less_Than<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_RB_Tree_Iterator<const char *, int, ACE_Less_Than<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_RB_Tree_Reverse_Iterator<const char *, int, ACE_Less_Than<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_RB_Tree<const char *, const char *, ACE_Less_Than<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_RB_Tree_Node<const char *, const char *> +#pragma instantiate ACE_RB_Tree_Iterator_Base<const char *, const char *, ACE_Less_Than<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_RB_Tree_Iterator<const char *, const char *, ACE_Less_Than<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_RB_Tree_Reverse_Iterator<const char *, const char *, ACE_Less_Than<const char *>, ACE_Null_Mutex> #pragma instantiate ACE_Less_Than<int> #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ |