簡體   English   中英

我可以在C ++的模板函數主體中使用模板變量嗎

[英]Can I use template variable in the body of template function in c++

我編寫了以下兩段代碼,編譯器輸出了一個錯誤。 但是我不知道為什么。

模板功能文件:

#ifndef INCLUDE_XXXX
#define INCLUDE_XXXX
#include <vector>
using namespace std;

namespace testns {
    template< typename T > 
    inline T ssum(std::vector<T> v) 
    {
      T _sum;
      std::vector<T>::iterator iter;           // <-------------- **********
      for (iter=v.begin(); iter!=v.end(); ++iter) {
         _sum=_sum+(*iter);
      }
      return _sum;
    }; // ssum
}
#endif

主要代碼如下

#include <vector>
#include <iostream>
#include "wyko.hpp"
using namespace std;

int main(){
   vector<double> v;
   v.push_back(3.0);
   v.push_back(2.0);
   v.push_back(1.0);
   cout<<testns::ssum<double>(v)<<endl;;
   return 0;
}

編譯時,輸出以下內容:

wyko.hpp:14: error: expected `;' before ‘iter’
wyko.hpp:15: error: ‘iter’ was not declared in this scope

我知道問題出在問題所在的行和<T>但不知道如何解決。

謝謝

固定:-

T _sum =0; //initialize it
typename std::vector<T>::iterator iter;  
// ^^^add typename

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM