为了设置iterator_type
与关联的迭代器类型,我必须为 YYY、ZZZ 写什么T
?如果可能,它应该在 Visual Studio C++ 2010 中工作(但通用标准解决方案也可以)。
template<class T>
struct iterator_for {
typedef YYY<T>::ZZZ type;
}
因此我想要:
iterator_for<double[3]>::type is double *
iterator_for<std::string>::type is std::string::iterator
iterator_for<char[12]>::type is char *
等等
我有一个模板化的包装类Wrapper<T>
存储一些可迭代的东西(即一个容器或字符串或一个数组),我想定义一个返回指向被包装对象的迭代器的函数。为此,我需要能够谈论对应的迭代器类型T
。对于数组,对应的迭代器将是一个指针,而对于一个字符串,它是任何定义为其迭代器类型的字符串。