关于STL traits的有关问题

关于STL traits的问题!
有如下程序,主要是为了测试iterator_traits的偏特化性质,但有一些问题:

#include   <cstdlib>
#include   <iostream>
using   namespace   std;
/*
template <class   T>
class   MyClass
{
public:
              typedef   T   value_type;

              MyClass(){};
              ~MyClass(){};
              int   m_data;          
};
*/
template <class   T>
struct   iterator_traitss
{
          typedef   typename   T::value_type   value_type;

};

template <class   T>
struct   iterator_traitss <T*>
{
        typedef   T   value_type;
};


template <class   T>
typename   iterator_traitss <T> ::value_type  
func(T   ite)
{
              typename   iterator_traitss <T> ::value_type   i;
                return   i;
}
int   main(int   argc,   char   *argv[])
{


        int   *p   =   new   int(9);
        func(p);   //没问题,因为有template <class   T> struct   iterator_traitss <T*>
        func(*p);   //有问题,无法执行!!!!!!   帮忙看看!!!
        system( "PAUSE ");
        return   EXIT_SUCCESS;
}

------解决方案--------------------
应该是重载func,提供func(int)版本。
------解决方案--------------------
嗯,那样更好。:P
一切麻烦烟消云散,嘿嘿。