当我编译我的项目时,我得到了 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
工具.h
class Tools {
public:
template<typename T>
static std::string convert(T);
static std::vector<std::string> explode(std::string, std::string);
};
工具.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;
}
我看不出有什么错误。你呢?