当我编译我的项目时,我得到了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
Run Code Online (Sandbox Code Playgroud)
的Tools.h
class Tools {
public:
template<typename T>
static std::string convert(T);
static std::vector<std::string> explode(std::string, std::string);
};
Run Code Online (Sandbox Code Playgroud)
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;
}
Run Code Online (Sandbox Code Playgroud)
我看不出任何错误.你呢?
在你的文件"struct.cpp"中,你需要#include <string>和#include <vector>.
当然,由于使用"tools.h"的所有东西都需要这些,你可能想把它们放在"tools.h"的顶部,这样你就可以在任何需要的地方加入"tools.h".
| 归档时间: |
|
| 查看次数: |
9497 次 |
| 最近记录: |