177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#include <vector> 277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#include <list> 377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (STLPORT) && !defined (_STLP_NO_EXTENSIONS) 477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# include <slist> 577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#include <deque> 777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#include <set> 877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#include <iterator> 977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 1077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#include "cppunit/cppunit_proxy.h" 1177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 1277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) 1377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerusing namespace std; 1477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 1577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 1677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// 1777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// TestCase class 1877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// 1977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerclass PtrSpecTest : public CPPUNIT_NS::TestCase 2077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{ 2177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_TEST_SUITE(PtrSpecTest); 2277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_TEST(ptr_specialization_test); 2377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_TEST(function_pointer); 2477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_TEST_SUITE_END(); 2577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 2677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerprotected: 2777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner /// this seems to be compile only test but... 2877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void ptr_specialization_test(); 2977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void function_pointer(); 3077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 3177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner template <class _Tp> 3277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner struct unary_pred { 3377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner bool operator () (_Tp *__ptr) const { 3477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner return *__ptr == 0; 3577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 3677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner }; 3777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 3877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner template <class _Tp> 3977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner struct binary_pred { 4077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner bool operator () (_Tp *__first, _Tp *__second) const { 4177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner return *__first < *__second; 4277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 4377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner }; 4477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner}; 4577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 4677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' TurnerCPPUNIT_TEST_SUITE_REGISTRATION(PtrSpecTest); 4777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 4877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#define TEST_INSTANCIATE_CONTAINER(cont) \ 4977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner template class cont<int*>; \ 5077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner template class cont<int const*>; \ 5177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner template class cont<int volatile*>; \ 5277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner template class cont<int const volatile*> 5377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 5477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined(_MSC_VER) || (_MSC_VER > 1200) // excluding MSVC 6.0 5577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' TurnerTEST_INSTANCIATE_CONTAINER(vector); 5677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' TurnerTEST_INSTANCIATE_CONTAINER(list); 5777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (STLPORT) && !defined (_STLP_NO_EXTENSIONS) 5877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' TurnerTEST_INSTANCIATE_CONTAINER(slist); 5977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 6077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' TurnerTEST_INSTANCIATE_CONTAINER(deque); 6177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' TurnerTEST_INSTANCIATE_CONTAINER(set); 6277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' TurnerTEST_INSTANCIATE_CONTAINER(multiset); 6377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 6477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 6577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner//Function to test pointer to function support: 6677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnervoid FTypeInstance() {} 6777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 6877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner//Class to test pointer to member method support: 6977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerclass AClass { 7077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerpublic: 7177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void func() {} 7277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner}; 7377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 7477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// 7577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// tests implementation 7677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// 7777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnervoid PtrSpecTest::ptr_specialization_test() 7877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{ 7977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner int *int_array[] = {0, 0, 0}; 8077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner int const* cint_array[] = {0, 0, 0}; 8177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 8277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { 8377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner vector<void*> void_vect; 8477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner deque<void*> void_deque; 8577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner list<void*> void_list; 8677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (STLPORT) && !defined (_STLP_NO_EXTENSIONS) 8777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner slist<void*> void_slist; 8877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 8977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 9077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 9177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { 9277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef void (*FType)(); 9377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner vector<FType> func_vector; 9477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner func_vector.push_back(&FTypeInstance); 9577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 9677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 9777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined(__GNUC__) || (__GNUC__ > 2) 9877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { 9977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef void (AClass::*MFType)(); 10077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner vector<MFType> mem_func_vector; 10177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner mem_func_vector.push_back(&AClass::func); 10277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 10377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 10477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 10577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner vector<int*> pint_vect; 10677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner vector<int*> pint_vect2; 10777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner vector<int const*> pcint_vect; 10877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner list<int*> pint_list; 10977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner list<int*> pint_list2; 11077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner list<int const*> pcint_list; 11177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (STLPORT) && !defined (_STLP_NO_EXTENSIONS) 11277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner slist<int*> pint_slist; 11377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner slist<int*> pint_slist2; 11477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner slist<int const*> pcint_slist; 11577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 11677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner deque<int*> pint_deque; 11777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner deque<int*> pint_deque2; 11877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner deque<int const*> pcint_deque; 11977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 12077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (STLPORT) || defined (_STLP_MEMBER_TEMPLATES) 12177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner vector<int*> pint_vect_from_list(pint_list.begin(), pint_list.end()); 12277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 12377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_vect.insert(pint_vect.end(), pint_vect2.begin(), pint_vect2.end()); 12477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_vect.insert(pint_vect.end(), int_array, int_array + 3); 12577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_vect2.insert(pint_vect2.end(), int_array, int_array + 3); 12677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_vect.insert(pcint_vect.end(), int_array, int_array + 3); 12777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_vect.insert(pcint_vect.end(), cint_array, cint_array + 3); 12877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (STLPORT) || !defined(_STLP_DEBUG) || defined(_STLP_MEMBER_TEMPLATES) 12977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_vect.insert(pcint_vect.end(), pint_vect2.begin(), pint_vect2.end()); 13077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 13177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_vect.insert(pcint_vect.end(), int_array, int_array + 3); 13277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (STLPORT) || defined (_STLP_MEMBER_TEMPLATES) 13377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_vect.insert(pint_vect.end(), pint_list.begin(), pint_list.end()); 13477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_vect.insert(pcint_vect.end(), pint_list.begin(), pint_list.end()); 13577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_vect.insert(pcint_vect.end(), pcint_list.begin(), pcint_list.end()); 13677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_vect.assign(pint_list.begin(), pint_list.end()); 13777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_vect.assign(pint_list.begin(), pint_list.end()); 13877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 13977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_vect.assign(int_array, int_array + 3); 14077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_vect.assign(int_array, int_array + 3); 14177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_vect.assign(cint_array, cint_array + 3); 14277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner copy(int_array, int_array + 3, back_inserter(pint_vect)); 14377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 14477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (STLPORT) || defined (_STLP_MEMBER_TEMPLATES) 14577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_list.sort(binary_pred<int>()); 14677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_list.sort(binary_pred<int const>()); 14777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_list.unique(binary_pred<int>()); 14877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_list.unique(binary_pred<int const>()); 14977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_list.merge(pint_list, binary_pred<int>()); 15077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_list.merge(pcint_list, binary_pred<int const>()); 15177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_list.remove_if(unary_pred<int>()); 15277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_list.remove_if(unary_pred<int const>()); 15377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 15477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 15577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner copy(int_array, int_array + 3, back_inserter(pint_list)); 15677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner copy(int_array, int_array + 3, back_inserter(pint_list2)); 15777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_list.insert(pint_list.end(), pint_list2.begin(), pint_list2.end()); 15877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (STLPORT) || defined (_STLP_MEMBER_TEMPLATES) 15977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_list.insert(pcint_list.end(), pint_list.begin(), pint_list.end()); 16077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 16177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (STLPORT) || !defined(_STLP_DEBUG) || defined(_STLP_MEMBER_TEMPLATES) 16277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_list.insert(pint_list.end(), pint_vect.begin(), pint_vect.end()); 16377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_list.insert(pcint_list.end(), pint_vect.begin(), pint_vect.end()); 16477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_list.insert(pcint_list.end(), pcint_vect.begin(), pcint_vect.end()); 16577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner list<int*> pint_list_from_vect(pint_vect.begin(), pint_vect.end()); 16677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_list.assign(pint_vect.begin(), pint_vect.end()); 16777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_list.assign(pint_vect.begin(), pint_vect.end()); 16877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 16977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_list.insert(pint_list.begin(), int_array, int_array + 3); 17077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_list.insert(pint_list.end(), int_array, int_array + 3); 17177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_list.insert(pcint_list.end(), int_array, int_array + 3); 17277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_list.insert(pcint_list.end(), cint_array, cint_array + 3); 17377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_list.assign(int_array, int_array + 3); 17477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_list.assign(int_array, int_array + 3); 17577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_list.assign(cint_array, cint_array + 3); 17677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner //pint_list.assign(pcint_vect.begin(), pcint_vect.end()); 17777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 17877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (STLPORT) && !defined (_STLP_NO_EXTENSIONS) 17977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner copy(int_array, int_array + 3, front_inserter(pint_slist)); 18077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner copy(int_array, int_array + 3, front_inserter(pint_slist2)); 18177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_slist.insert(pint_slist.end(), pint_slist2.begin(), pint_slist2.end()); 18277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_MEMBER_TEMPLATES) 18377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_slist.insert(pcint_slist.end(), pint_slist.begin(), pint_slist.end()); 18477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 18577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if !defined (_STLP_DEBUG) || defined (_STLP_MEMBER_TEMPLATES) 18677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_slist.insert(pint_slist.end(), pint_vect.begin(), pint_vect.end()); 18777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_slist.insert(pcint_slist.end(), pint_vect.begin(), pint_vect.end()); 18877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_slist.insert(pcint_slist.end(), pcint_vect.begin(), pcint_vect.end()); 18977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner slist<int*> pint_slist_from_vect(pint_vect.begin(), pint_vect.end()); 19077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_slist.assign(pint_vect.begin(), pint_vect.end()); 19177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_slist.assign(pint_vect.begin(), pint_vect.end()); 19277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 19377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_slist.insert(pint_slist.end(), int_array, int_array + 3); 19477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_slist.insert(pcint_slist.end(), int_array, int_array + 3); 19577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_slist.insert(pcint_slist.end(), cint_array, cint_array + 3); 19677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_slist.assign(int_array, int_array + 3); 19777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_slist.assign(int_array, int_array + 3); 19877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_slist.assign(cint_array, cint_array + 3); 19977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner //pint_slist.assign(pcint_vect.begin(), pcint_vect.end()); 20077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 20177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 20277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner copy(int_array, int_array + 3, back_inserter(pint_deque)); 20377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner copy(int_array, int_array + 3, back_inserter(pint_deque2)); 20477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_deque.insert(pint_deque.end(), pint_deque2.begin(), pint_deque2.end()); 20577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (STLPORT) || defined (_STLP_MEMBER_TEMPLATES) 20677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_deque.insert(pcint_deque.end(), pint_deque.begin(), pint_deque.end()); 20777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 20877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (STLPORT) || !defined(_STLP_DEBUG) || defined(_STLP_MEMBER_TEMPLATES) 20977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_deque.insert(pint_deque.end(), pint_vect.begin(), pint_vect.end()); 21077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_deque.insert(pcint_deque.end(), pint_vect.begin(), pint_vect.end()); 21177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_deque.insert(pcint_deque.end(), pcint_vect.begin(), pcint_vect.end()); 21277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner deque<int*> pint_deque_from_vect(pint_vect.begin(), pint_vect.end()); 21377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_deque.assign(pint_vect.begin(), pint_vect.end()); 21477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_deque.assign(pint_vect.begin(), pint_vect.end()); 21577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 21677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_deque.insert(pint_deque.end(), int_array, int_array + 3); 21777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_deque.insert(pcint_deque.end(), int_array, int_array + 3); 21877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_deque.insert(pcint_deque.end(), cint_array, cint_array + 3); 21977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pint_deque.assign(int_array, int_array + 3); 22077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_deque.assign(int_array, int_array + 3); 22177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner pcint_deque.assign(cint_array, cint_array + 3); 22277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner} 22377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 22477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertypedef void (*Func)(int); 22577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnervoid f1(int) {} 22677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 22777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnervoid PtrSpecTest::function_pointer() 22877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{ 22977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner vector<Func> fs; 23077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner fs.push_back(&f1); 23177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT( !fs.empty() ); 23277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner} 233