嵌套类模板问题

Nested class template issue

本文关键字:问题 嵌套      更新时间:2023-10-16

找不到合适的名称。

我有一个模板类Array,它包含一个嵌套迭代器类

class Array<T>::Iterator

我想定义一个函数"sort":

template <typename T, class RAIterator>
void sort(RAIterator start, RAIterator end);

的问题是,c++不能从函数的签名中推断出T。由于我希望函数独立于指定T(例如sort(…)),我正在考虑这个(明显错误的)语法:

template <typename T, class RAIterator<typename T>>
void sort(RAIterator start, RAIterator end);

是否有一种方法可以让编译器找出T ?

你应该在你的迭代器类中定义T的类型,然后你可以在你的排序函数中访问它:

template <typename T>
class Array{
    class Iterator{
        typedef T value;
    }
}
template <class RAIterator>
void sort(RAIterator start, RAIterator end){
    typename RAIterator::value &v=...;   
}