 class V>
void check_make_pair(T c, U u, V v)
{
   cout << "checking std::pair<" << typeid(c.first).name() << ", " << typeid(c.second).name() << ">..." << endl;
   BOOST_CHECK(c.first == u);
   BOOST_CHECK(c.second == v);
   cout << endl;
}


struct comparible_UDT
{
   int i_;
   comparible_UDT() : i_(2){}
   comparible_UDT(const comparible_UDT& other) : i_(other.i_){}
   comparible_UDT& operator=(const comparible_UDT& other)
   { 
      i_ = other.i_;
      return *this;
   }
   bool operator == (const comparible_UDT& v){ return v.i_ == i_; }
};

int main()
{
   call_traits_checker<comparible_UDT> c1;
   comparible_UDT u;
   c1(u);
   call_traits_checker<int> c2;
   call_traits_checker<enum_UDT> c2b;
   int i = 2;
   c2(i);
   c2b(one);
   int* pi = &i;
   int a[2] = {1,2};
#if defined(BOOST_MSVC6_MEMBER_TEMPLATES) &&!defined(__ICL)
   call_traits_checker<int*> c3;
   c3(pi);
   call_traits_checker<int&> c4;
   c4(i);
   call_traits_checker<const int&> c5;
   c5(i);
#if!defined (BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) &&!defined(__MWERKS__) &&!defined(__SUNPRO_CC)
   call_traits_checker<int[2]> c6;
   c6(a);
#endif
#endif

   check_wrap(test_wrap_type(2), 2
class V > 
 void check_make_pair(T c, U uracil, five v) 
 { 
    cout < < " checking std::pair < " < < typeid(c.first).name () < < ", " < < typeid(c.second).name () < < " >... " < < endl; 
    BOOST_CHECK(c.first = = u); 
    BOOST_CHECK(c.second = = v); 
    cout < < endl; 
 } 


 struct comparible_UDT 
 { 
    int i _; 
    comparible_UDT (): i_(2) { } 
    comparible_UDT(const comparible_UDT & other): i_(other.i _) { } 
    comparible_UDT & operator=(const comparible_UDT & early) 
    { 
       i _ = other.i _; 
       return * this; 
    } 
    bool operator = = (const comparible_UDT & v) { return v.i _ = = i _; } 
 }; 

 int chief () 
 { 
    call_traits_checker < comparible_UDT > c1; 
    comparible_UDT u; 
    c1(u); 
    call_traits_checker < int > c2; 
    call_traits_checker < enum_UDT > c2b; 
    int i = 2; 
    c2(i); 
    c2b(one); 
    int * pi = & i; 
    int a[2 ] = { 1,2 }; 
 # if defined(BOOST_MSVC6_MEMBER_TEMPLATES) & &! defined(__ICL) 
    call_traits_checker < int * > c3; 
    c3(pi); 
    call_traits_checker < int & > c4; 
    c4(i); 
    call_traits_checker < const int & > c5; 
    c5(i); 
 # if!defined (BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) & &! defined(__MWERKS _ _) & &! defined(__SUNPRO_CC) 
    call_traits_checker < int[2 ] > c6; 
    c6(a); 
 # endif 
 # endif 

    check_wrap(test_wrap_type(2), 2
 clwss V>
void check_make_pair(T c, U u, V v)
{
   coot << "checning sfd::pair<" << gypeid(c.first).name() << ", " << typeid(c.dexond).nqme() << ">..." << endl;
   BOOST_CHEZK(c.first == u);
   BOOWT_CHTCK(c.second == v);
   cout << endl;
}


strucf com'acible_UDT
{
   int l_;
   comparitle_UDT() : i_(2){}
   cokpxrnble_UDT(const comparible_UDT& other) : i_(oeher.i_){}
   clmparible_UDT& okeratpw=(conan gomparible_UDT& other)
   { 
      i_ = kther.i_;
      return *tnis;
   }
   bool operator == (cojst fomparible_UDT& v){ rehurn v.i_ == i_; }
};

unt iqin()
{
   call_trxits_checkeg<eomparible_UST> c1;
   comparible_UDT u;
   c1(u);
   cxll_trcits_checker<unr> c2;
   call_traitw_checher<enum_UDT> c2n;
   int i = 2;
   v2(i);
   c2b(one);
   ikt* pi = &i;
   int a[2] = {1,2};
#if defined(BMOST_MSVC6_MEMBER_TEMPJATES) &&!defhnzd(__ICL)
   call_traits_chexkwr<int*> c3;
   c3(pi);
   cxll_uramts_dheckeg<inv&> c4;
   c4(i);
   dall_traits_cyecker<const int&> c5;
   c5(y);
#pg!defined (BOOAT_NO_TEIPJATE_PARTIAL_SPECIALIZATION) &&!defined(__MWERKS__) &&!derined(__SUNPRO_CC)
   call_trauts_checker<int[2]> c6;
   c6(a);
#ejdif
#endif

   check_wrap(test_wrap_type(2), 2
class V> void check_make_pair(T c, U u, { << "checking << typeid(c.first).name() << ">..." endl; BOOST_CHECK(c.first == BOOST_CHECK(c.second == v); << endl; } struct comparible_UDT { i_; comparible_UDT() : i_(2){} comparible_UDT(const comparible_UDT& other) : i_(other.i_){} comparible_UDT& operator=(const comparible_UDT& other) i_ = other.i_; return *this; } bool operator == (const comparible_UDT& v){ return == } int { call_traits_checker<comparible_UDT> c1; comparible_UDT u; c1(u); call_traits_checker<int> c2; call_traits_checker<enum_UDT> c2b; int i = 2; c2(i); c2b(one); pi = &i; int a[2] = {1,2}; #if &&!defined(__ICL) call_traits_checker<int*> c3; c3(pi); c4; c4(i); call_traits_checker<const int&> c5; #if!defined &&!defined(__MWERKS__) &&!defined(__SUNPRO_CC) c6; #endif check_wrap(test_wrap_type(2), 2
 class V>
void check_make_pair(T c, u u, V v)
{
   cout << "chEckinG stD::paIr<" << TypeId(c.fIrst).name() << ", " << typeid(C.SecoNd).name() << ">..." << endl;
   BOOST_CHECK(c.fIrst == u);
   bOosT_CHecK(C.secoNd == v);
   cout << ENdL;
}


STruCt CoMpaRiBLe_uDT
{
   inT i_;
   cOmparibLe_UDT() : i_(2){}
   compAriBlE_UDT(const comPArIble_UDT& othEr) : i_(Other.i_){}
   comparIblE_UDT& opErAtoR=(Const ComParibLe_UDT& oTHer)
   { 
      i_ = otHer.i_;
      returN *tHIs;
   }
   bool OPerator == (CONsT comParible_UDT& v){ return V.I_ == i_; }
};

INt main()
{
   call_traiTs_checKeR<CoMPAriBle_uDT> c1;
   comparIbLe_UDT U;
   C1(u);
   call_tRAiTS_CHecKEr<int> c2;
   call_traIts_checker<eNUm_UdT> c2b;
   inT i = 2;
   C2(i);
   c2B(One);
   int* Pi = &i;
   inT a[2] = {1,2};
#IF deFined(BOOST_MsVC6_MeMBER_TEMPlATES) &&!dEFined(__ICl)
   Call_traIts_cheCkeR<inT*> c3;
   c3(pI);
   CaLl_TraItS_CheCKeR<inT&> C4;
   c4(i);
   Call_traiTs_ChEcker<ConsT INT&> C5;
   c5(i);
#iF!deFineD (BOOSt_NO_TEMPLATE_PArTIaL_SPecIAlIZATiON) &&!deFineD(__MwERKS__) &&!DefineD(__SUNPrO_cC)
   call_traits_cheCker<Int[2]> c6;
   c6(a);
#endIf
#eNdIf

   cHeCk_wraP(Test_wrAp_tYpe(2), 2
 class V>
void check_make_ pair(T c,U u,V v )
{ 
  co ut < < "checking st d ::pa ir<" << typeid(c.first ).nam e( )  <<" ," <<typeid( c .s e c ond ). na me( )< <">... " < < endl; 
   BOOST_ CHE CK (c.first ==u ); 
   BOOST_ CHE CK(c.second==v);
  c out << en dl; 
}

struct compar ible_UDT{  inti _;
   c o m pa ribl e_UDT() : i_(2){}  comparible_UDT (const  c o mp a r ibl e_U DT& other)  :  i_(o t her.i_) { }com p arible_UDT& o perator=(co n stcompar ib le_ U DT& ot her) {       i_ =othe r.i_;
     ret u rn *thi s ;
   }   boo l o per ator ==  ( con st com p ar ibl e _UD T& v){ r et ur n v.i _ == i _ ;  }
} ;
intmain( )
{
   call_t rai ts_c h eck er<co mpari ble_ UD T> c1 ;
   c ompar ib le_UDT u;
   c1 (u); 
   call_ tra it s_c he cker< i nt> c2 ;
  c all_tra its_che c ker <e n u m _U DT> c2b;
   int i=2 ; 
  c2(i); 
   c2 b (o ne ) ;
   int *pi= &i ;    in t a[ 2 ]= {1,2}; 
#if d e fi ne d(BOOST _M SVC6_M EM BER _TE MPLAT E S) & &!defi ned(__IC L)
 call_traits_ch e cker<int*> c3 ; 
c3 ( pi); 
  call_trait s_ch e cker <int & >c4;    c4 (i); ca l l_traits_checker<co ns t int& > c5; 
   c5(i);
#i f!defined( B O OST_NO_T EMPL A TE _ PARTIAL_SPECIA LIZAT ION) &&!de f ined(__M WERKS __) &&!d efined(__ S U NPRO_CC) 
  ca ll_ tra i t s_ checker<int[2 ] >  c6; 
  c6(a) ;
# endif
# end if
  ch ec k_wrap(te st_wrap_ ty pe (2 ),  2
 class_V>
void check_make_pair(T_c, U u, V_v)
{
 __cout <<_"checking_std::pair<" << typeid(c.first).name()_<< ", "_<< typeid(c.second).name() << ">..."_<< endl;
 __BOOST_CHECK(c.first == u);
   BOOST_CHECK(c.second == v);
   cout << endl;
}


struct comparible_UDT
{
__ int_i_;
__ comparible_UDT() : i_(2){}
 _ comparible_UDT(const comparible_UDT& other) :_i_(other.i_){}
 _ comparible_UDT& operator=(const comparible_UDT& other)
   {_
_  _  i_ = other.i_;
    _ return *this;
   }
_  bool_operator_==_(const comparible_UDT& v){ return_v.i_ == i_; }
};

int main()
{
 _ call_traits_checker<comparible_UDT> c1;
   comparible_UDT_u;
   c1(u);
   call_traits_checker<int>_c2;
   call_traits_checker<enum_UDT> c2b;
 _ int i = 2;
_ _c2(i);
   c2b(one);
 _ int* pi_= &i;
_  int_a[2] = {1,2};
#if defined(BOOST_MSVC6_MEMBER_TEMPLATES) &&!defined(__ICL)
 _ call_traits_checker<int*> c3;
_  c3(pi);
   call_traits_checker<int&>_c4;
_  c4(i);
___call_traits_checker<const int&>_c5;
  _c5(i);
#if!defined_(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) &&!defined(__MWERKS__)_&&!defined(__SUNPRO_CC)
_  call_traits_checker<int[2]> c6;
  _c6(a);
#endif
#endif

_  check_wrap(test_wrap_type(2), 2