Der folgende Code generiert "Kontrolle erreicht Ende der nicht-void-Funktion" Warnung am Ende der Zeile. Was könnte möglicherweise schiefgehen? Von der Schnellsuche scheint es mit dem Rückgabewert zu tun zu haben.Kontrolle erreicht Ende der nicht-void Funktion Warnung C++
std::vector<csce::point<T>> compute_hull(std::vector<csce::point<T>>& points) const {
for(std::size_t x=0; x<points.size(); x++){
for(std::size_t m=1; m<(1<<(1<<x)); m++){
std::vector<std::vector<csce::point<T>>> hulls;
for(std::size_t i=0; i<points.size(); i=i+m){
std::vector<csce::point<T>> chunk;
if(points.begin()+i+m <= points.end())
chunk.assign(points.begin()+i,points.begin()+i+m);
else
chunk.assign(points.begin()+i,points.end());
hulls.push_back(this->graham_scan(chunk));
}
std::vector<std::pair<int,int>> hull;
hull.push_back(this->extreme_hullpt_pair(hulls));
for(std::size_t i=0; i<m; ++i){
std::pair<int,int> p = this->next_hullpt_pair(hulls,hull[hull.size()-1]);
std::vector<csce::point<T>> output;
if(p==hull[0]){
for(std::size_t j=0; j<hull.size(); j++){
output.push_back(hulls[hull[j].first][hull[j].second]);
}
return output;
}
hull.push_back(p);
}
}
}
}
Korrigieren Sie Ihre Formatierung und setzen Sie vor der letzten schließenden Klammer eine 'return'-Anweisung. –
Rolled Ihre Bearbeitung, da die ursprüngliche Form ein wichtiger Teil für die richtige Antwort ist. –