读书人

关于STL traits的有关问题

发布时间: 2012-02-09 18:22:27 作者: rapoo

关于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
一切麻烦烟消云散,嘿嘿。

读书人网 >C++

热点推荐