当我编译我的项目。我得到的Tools.h /是的Tools.h奇怪的错误。 字符串和矢量类是通过std名字空间使用。 我看不出任何差错。
g++ powerpi.cpp structs.cpp xmlreader.cpp tools.cpp -o powerpi
In file included from structs.cpp:5:
tools.h:5: error: ISO C++ forbids declaration of ‘vector’ with no type
tools.h:5: error: invalid use of ‘::’
tools.h:5: error: expected ‘;’ before ‘<’ token
的Tools.h
class Tools {
public:
template<typename T>
static std::string convert(T);
static std::vector<std::string> explode(std::string, std::string);
};
tools.cpp
#include <sstream>
#include <vector>
#include <string>
#include "tools.h"
template <typename T>
std::string Tools::convert(T Number)
{
std::ostringstream ss;
ss << Number;
return ss.str();
}
std::vector<std::string> Tools::explode(std::string delimiter, std::string str)
{
std::vector<std::string> arr;
int strleng = str.length();
int delleng = delimiter.length();
if (delleng==0)
return arr;//no change
int i=0;
int k=0;
while( i<strleng )
{
int j=0;
while (i+j<strleng && j<delleng && str[i+j]==delimiter[j])
j++;
if (j==delleng)//found delimiter
{
arr.push_back( str.substr(k, i-k) );
i+=delleng;
k=i;
}
else
{
i++;
}
}
arr.push_back( str.substr(k, i-k) );
return arr;
}
我看不到任何错误。 你呢?