⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ptrspec_test.cpp

📁 symbian 上的stl_port进过编译的。
💻 CPP
字号:
#include <vector>#include <list>#if defined (STLPORT) && !defined (_STLP_NO_EXTENSIONS)#  include <slist>#endif#include <deque>#include <set>#include <iterator>#include "cppunit/cppunit_proxy.h"#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)using namespace std;#endif//// TestCase class//class PtrSpecTest : public CPPUNIT_NS::TestCase{  CPPUNIT_TEST_SUITE(PtrSpecTest);#if (defined (__DMC__) && defined (_STLP_DEBUG))  CPPUNIT_IGNORE;#endif  CPPUNIT_TEST(ptr_specialization_test);  CPPUNIT_TEST_SUITE_END();protected:  /// this seems to be compile only test but...  void ptr_specialization_test();  template <class _Tp>  struct unary_pred {    bool operator () (_Tp *__ptr) const {     return *__ptr == 0;    }  };  template <class _Tp>  struct binary_pred {    bool operator () (_Tp *__first, _Tp *__second) const {      return *__first < *__second;    }  };};CPPUNIT_TEST_SUITE_REGISTRATION(PtrSpecTest);#define TEST_INSTANCIATE_CONTAINER(cont) \  template class cont<int*>; \  template class cont<int const*>; \  template class cont<int volatile*>; \  template class cont<int const volatile*>#if !defined(_MSC_VER) || (_MSC_VER > 1200)  // excluding MSVC 6.0TEST_INSTANCIATE_CONTAINER(vector);TEST_INSTANCIATE_CONTAINER(list);#  if defined (STLPORT) && !defined (_STLP_NO_EXTENSIONS)TEST_INSTANCIATE_CONTAINER(slist);#  endifTEST_INSTANCIATE_CONTAINER(deque);TEST_INSTANCIATE_CONTAINER(set);TEST_INSTANCIATE_CONTAINER(multiset);#endif//Function to test pointer to function support:void FTypeInstance() {}//Class to test pointer to member method support:class AClass {public:  void func() {}};//// tests implementation//void PtrSpecTest::ptr_specialization_test(){#  if !(defined (__DMC__) && defined (_STLP_DEBUG))  int *int_array[] = {0, 0, 0};  int const* cint_array[] = {0, 0, 0};  {    vector<void*> void_vect;    deque<void*> void_deque;    list<void*> void_list;#if defined (STLPORT) && !defined (_STLP_NO_EXTENSIONS)    slist<void*> void_slist;#endif  }  {    typedef void (*FType)();    vector<FType> func_vector;    func_vector.push_back(&FTypeInstance);  }#if !defined(__GNUC__) || (__GNUC__ > 2)  {    typedef void (AClass::*MFType)();    vector<MFType> mem_func_vector;    mem_func_vector.push_back(&AClass::func);  }#endif  vector<int*> pint_vect;  vector<int*> pint_vect2;  vector<int const*> pcint_vect;  list<int*> pint_list;  list<int*> pint_list2;  list<int const*> pcint_list;#if defined (STLPORT) && !defined (_STLP_NO_EXTENSIONS)  slist<int*> pint_slist;  slist<int*> pint_slist2;  slist<int const*> pcint_slist;#endif  deque<int*> pint_deque;  deque<int*> pint_deque2;  deque<int const*> pcint_deque;#ifdef _STLP_MEMBER_TEMPLATES  vector<int*> pint_vect_from_list(pint_list.begin(), pint_list.end());#endif  pint_vect.insert(pint_vect.end(), pint_vect2.begin(), pint_vect2.end());  pint_vect.insert(pint_vect.end(), int_array, int_array + 3);  pint_vect2.insert(pint_vect2.end(), int_array, int_array + 3);  pcint_vect.insert(pcint_vect.end(), int_array, int_array + 3);  pcint_vect.insert(pcint_vect.end(), cint_array, cint_array + 3);#if !defined(_STLP_DEBUG) || defined(_STLP_MEMBER_TEMPLATES)  pcint_vect.insert(pcint_vect.end(), pint_vect2.begin(), pint_vect2.end());#endif  pcint_vect.insert(pcint_vect.end(), int_array, int_array + 3);#ifdef _STLP_MEMBER_TEMPLATES  pint_vect.insert(pint_vect.end(), pint_list.begin(), pint_list.end());  pcint_vect.insert(pcint_vect.end(), pint_list.begin(), pint_list.end());  pcint_vect.insert(pcint_vect.end(), pcint_list.begin(), pcint_list.end());  pint_vect.assign(pint_list.begin(), pint_list.end());  pcint_vect.assign(pint_list.begin(), pint_list.end());#endif  pint_vect.assign(int_array, int_array + 3);  pcint_vect.assign(int_array, int_array + 3);  pcint_vect.assign(cint_array, cint_array + 3);  copy(int_array, int_array + 3, back_inserter(pint_vect));#ifdef _STLP_MEMBER_TEMPLATES  pint_list.sort(binary_pred<int>());  pcint_list.sort(binary_pred<int const>());  pint_list.unique(binary_pred<int>());  pcint_list.unique(binary_pred<int const>());  pint_list.merge(pint_list, binary_pred<int>());  pcint_list.merge(pcint_list, binary_pred<int const>());  pint_list.remove_if(unary_pred<int>());  pcint_list.remove_if(unary_pred<int const>());#endif  copy(int_array, int_array + 3, back_inserter(pint_list));  copy(int_array, int_array + 3, back_inserter(pint_list2));  pint_list.insert(pint_list.end(), pint_list2.begin(), pint_list2.end());#ifdef _STLP_MEMBER_TEMPLATES  pcint_list.insert(pcint_list.end(), pint_list.begin(), pint_list.end());#endif#if !defined(_STLP_DEBUG) || defined(_STLP_MEMBER_TEMPLATES)  pint_list.insert(pint_list.end(), pint_vect.begin(), pint_vect.end());  pcint_list.insert(pcint_list.end(), pint_vect.begin(), pint_vect.end());  pcint_list.insert(pcint_list.end(), pcint_vect.begin(), pcint_vect.end());  list<int*> pint_list_from_vect(pint_vect.begin(), pint_vect.end());  pint_list.assign(pint_vect.begin(), pint_vect.end());  pcint_list.assign(pint_vect.begin(), pint_vect.end());#endif  pint_list.insert(pint_list.begin(), int_array, int_array + 3);  pint_list.insert(pint_list.end(), int_array, int_array + 3);  pcint_list.insert(pcint_list.end(), int_array, int_array + 3);  pcint_list.insert(pcint_list.end(), cint_array, cint_array + 3);  pint_list.assign(int_array, int_array + 3);  pcint_list.assign(int_array, int_array + 3);  pcint_list.assign(cint_array, cint_array + 3);  //pint_list.assign(pcint_vect.begin(), pcint_vect.end());#if defined (STLPORT) && !defined (_STLP_NO_EXTENSIONS)  copy(int_array, int_array + 3, front_inserter(pint_slist));  copy(int_array, int_array + 3, front_inserter(pint_slist2));  pint_slist.insert(pint_slist.end(), pint_slist2.begin(), pint_slist2.end());#  if defined (_STLP_MEMBER_TEMPLATES)  pcint_slist.insert(pcint_slist.end(), pint_slist.begin(), pint_slist.end());#  endif#  if !defined (_STLP_DEBUG) || defined (_STLP_MEMBER_TEMPLATES)  pint_slist.insert(pint_slist.end(), pint_vect.begin(), pint_vect.end());  pcint_slist.insert(pcint_slist.end(), pint_vect.begin(), pint_vect.end());  pcint_slist.insert(pcint_slist.end(), pcint_vect.begin(), pcint_vect.end());  slist<int*> pint_slist_from_vect(pint_vect.begin(), pint_vect.end());  pint_slist.assign(pint_vect.begin(), pint_vect.end());  pcint_slist.assign(pint_vect.begin(), pint_vect.end());#  endif  pint_slist.insert(pint_slist.end(), int_array, int_array + 3);  pcint_slist.insert(pcint_slist.end(), int_array, int_array + 3);  pcint_slist.insert(pcint_slist.end(), cint_array, cint_array + 3);  pint_slist.assign(int_array, int_array + 3);  pcint_slist.assign(int_array, int_array + 3);  pcint_slist.assign(cint_array, cint_array + 3);  //pint_slist.assign(pcint_vect.begin(), pcint_vect.end());#endif  copy(int_array, int_array + 3, back_inserter(pint_deque));  copy(int_array, int_array + 3, back_inserter(pint_deque2));  pint_deque.insert(pint_deque.end(), pint_deque2.begin(), pint_deque2.end());#ifdef _STLP_MEMBER_TEMPLATES  pcint_deque.insert(pcint_deque.end(), pint_deque.begin(), pint_deque.end());#endif#if !defined(_STLP_DEBUG) || defined(_STLP_MEMBER_TEMPLATES)  pint_deque.insert(pint_deque.end(), pint_vect.begin(), pint_vect.end());  pcint_deque.insert(pcint_deque.end(), pint_vect.begin(), pint_vect.end());  pcint_deque.insert(pcint_deque.end(), pcint_vect.begin(), pcint_vect.end());  deque<int*> pint_deque_from_vect(pint_vect.begin(), pint_vect.end());  pint_deque.assign(pint_vect.begin(), pint_vect.end());  pcint_deque.assign(pint_vect.begin(), pint_vect.end());#endif  pint_deque.insert(pint_deque.end(), int_array, int_array + 3);  pcint_deque.insert(pcint_deque.end(), int_array, int_array + 3);  pcint_deque.insert(pcint_deque.end(), cint_array, cint_array + 3);  pint_deque.assign(int_array, int_array + 3);  pcint_deque.assign(int_array, int_array + 3);  pcint_deque.assign(cint_array, cint_array + 3);#  endif /* __DMC__ */}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -