Проблема заключается в том, что компилятор (Mingw32) настаивает на том, что в строке 21 в «util.h» имеется ошибка компилятора.Функция C4716 должна возвращать значение, несмотря на возвращение значения
#ifndef UTIL_H
#define UTIL_H
#include <string>
#include <list>
#include "treeitem.h"
using namespace std;
#include <algorithm>
#include <functional>
#include <cctype>
#include <locale>
#include <QList>
static inline string <rim(string &s){}
static inline string &rtrim(string &s){}
static inline string &trim(string &s){}
static inline string func_1(string txt,size_t start, size_t end){}
static inline size_t func_2(string txt, size_t index){}
static inline string replace(string& str, const string& from, const string& to){}
vector<TreeItem *> parse(string dat){}
#endif // UTIL_H
Линия 21 является просто заполнителем для функции в «util.cpp». (Отрывок из util.cpp)
vector<TreeItem *> parse(string dat)
{
vector<TreeItem *> final {};
while (dat.find("{") <= dat.length()){
TreeItem * temp = new TreeItem;
temp->setText(QString::fromStdString(replace(replace(replace(replace(trim(func_1(dat,0,dat.find('{'))),"\n","")," ",""),"}",""),"=","")));
QList<TreeItem *> ref = parse(func_1(dat, dat.find("{")+1,func_2(dat,dat.find('{'))));
for(int j = 0; j < ref.size(); j++)
{
temp->setParent(ref.at(j));
final.push_back(temp);
dat = func_1(dat,func_2(dat,dat.find('{')),dat.length());
}
}
return final;
}
Очевидно, что возвращает что-то, так что компилятор не должен давать ошибку. Это не проблема, когда цикл всегда вычисляет true, потому что даже если я перехожу к «return final»; перед циклом он все равно выдает ошибку.
Что это за '{}' делает в файле заголовка ??? – AnT
** ЧТО ОШИБКА КОМПЬЮТЕРА? ** Без этого мы действительно не в состоянии вам помочь. –
@MaxLybbert: Это в названии. –