algorithm/string -- find_all_regex() gives a compiler error when the result container is vector<iterator_range<string::iterator>>
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginne damit, den bereitgestellten Aufruf von boost::find_all_regex mit std::vector<boost::iterator_rangestd::string::iterator> nachzubilden und ihn mit dem Fall std::vectorstd::string zu vergleichen. Lies die verlinkte Dokumentation zu find_all_regex und die Implementierung der Funktion; abgeschlossen ist die Aufgabe, wenn die dokumentierte Container-Diskrepanz behoben oder die Dokumentation eindeutig korrigiert wurde und das gemeldete Beispiel abgedeckt ist, sofern Tests verfügbar sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
The doc says that the container we should pass to this function can be std::vector<boost::iterator_rangestd::string::iterator>. But when I run the program it gives a compile error. But when the result container passed, is a std::vectorstd::string, everything works fine.
First code snippet is using std::vector<boost::iterator_rangestd::string::iterator> as the result.
#include "boost/algorithm/string/split.hpp"
#include "boost/range/iterator_range_core.hpp"
#include <iostream>
#include <boost/algorithm/string.hpp>
#include <boost/algorithm/string/regex.hpp>
#include <vector>
int main(int, char**) {
std::string s("Hello world");
boost::regex regex("\\w");
std::vector<boost::iterator_range<std::string::iterator>> result;
boost::find_all_regex(result, s, regex);
}
Following is the last 3 lines of the compiler error. The whole error is too long.
c:\mingw\include\c++\9.2.0\bits\stl_iterator.h:787:11: note: no known conversion for argument 1 from '__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string >' to 'const __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string >&'
c:\mingw\include\c++\9.2.0\bits\stl_iterator.h:787:11: note: candidate: 'constexpr __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string >::__normal_iterator(__gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string >&&)'
c:\mingw\include\c++\9.2.0\bits\stl_iterator.h:787:11: note: no known conversion for argument 1 from '__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string >' to '__gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string >&&'
Also I ran the same program in Clang compiler too. Still the same result.
But when I run the following program with the container as std::vectorstd::string everything works without a hitch.
#include "boost/algorithm/string/split.hpp"
#include "boost/range/iterator_range_core.hpp"
#include <iostream>
#include <boost/algorithm/string.hpp>
#include <boost/algorithm/string/regex.hpp>
#include <string>
#include <vector>
int main(int, char**) {
std::string s("Hello world");
boost::regex regex("\\w");
std::vector<std::string> result;
boost::find_all_regex(result, s, regex);
}
- Vorherrschende Sprache
- C++
- Sterne
- 131
- Forks
- 117
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Die Einrichtungsdateien dieses Projekts haben wir noch nicht geprüft. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus boostorg/algorithm
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
-
variadic min/max/minmaxOffen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
-
Automated formattingOffen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
Alle Issues in boostorg/algorithm
Ähnliche Issues
-
area/actorsystem bug tsan
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
ydb-platform/ydb#54282 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug needs triage
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
project-chip/connectedhomeip#74434 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
tenstorrent/tt-metal#58057 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
maplibre/maplibre-native#4690 ·
Maintainer antworten meist innerhalb von 1 Tag
-
comp-query-execution
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
ClickHouse/ClickHouse#122569 ·
Maintainer antworten meist innerhalb von 1 Tag