[英]define pair of iterator in template class with template parameter
我如何在帶有模板參數的模板類中定義一對迭代器
template <typename S,typename T>
class pairMove :public pair<S,T>
{
private:
pair< multimap<S,T>::iterator , multimap<S,T>::iterator > pairIt;
我在編譯時收到此錯誤
//錯誤2錯誤C2923:“ std :: pair”:“ std :: multimap :: iterator”不是參數“ _Ty1”的有效模板類型參數
解決我的問題的任何解決方案
您錯過了typename
關鍵字:
pair<typename multimap<S,T>::iterator, typename multimap<S,T>::iterator> pairIt;
^^^^^^^^ ^^^^^^^^
注意, S
和T
是template
類型; 當它們與::
運算符結合使用以獲取另一種依賴類型時,必須使用typename
。
關於此主題的另一個不錯的討論 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.