2011-02-24 48 views

回答

4

我不知道這樣的元函數。

並非所有迭代器都有相應的const_iterator。例如。 insert_iterator。所以這樣的元函數需要決定在這種情況下要做什麼。

0

我可以想象一下reverse_iterator:使用base成員函數decltype,可以提取返回類型以返回iterator

然而,iterator/const_iterator沒有這樣的功能,所以很難看出如何實現這個功能,而不是提供內部typedef或需要顯式專門化。

0

我認爲你的問題的一個通用的解決方案(和一個也是可移植的是不可能的)。至少我無法想象一個:-)。

這裏的難題是容器定義了const_iterator類型。要獲得容器的const_iterator類型,您必須確定容器類型。

但是,如果您將容器的迭代器類型作爲元函數參數啓動,則無法檢索容器的類型。

對於要然而能夠實現什麼樣的已知T(S)...

0

我不認爲這是可能的,因爲有迭代器類型之間往往沒有明確的映射。例如,兩個容器可以共享非常量迭代器類型,但是具有不同的常量迭代器。通常,只能從容器類型映射到迭代器類型,而不能在迭代器類型之間或從迭代器類型到容器類型之間映射。

相關問題