Range Algorithms do not compile with `std::span`
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Inizia con l'esempio minimo collegato nell'issue e riproduci il problema in boost::range::find con std::span. Traccia la gestione dell'iteratore di range coinvolta in quel punto di ingresso; il lavoro è completo quando la chiamata a std::span mostrata compila, mentre i casi esistenti di boost::span e std::ranges continuano a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Algorithms like find_if do not compile when used on instances of std::span. They work with boost::span.
You can try this code on https://godbolt.org/z/Mq4GhqMYn:
#include <ranges>
#include <span>
#include <boost/core/span.hpp>
#include <boost/range/algorithm/find.hpp>
constexpr int a[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
boost::span boost_span{a};
std::span std_span{a};
auto foo0() {
return boost::range::find(boost_span, 2); // ok
}
auto foo1() {
return boost::range::find(std_span, 2); // fails
}
auto foo2() {
return std::ranges::find(boost_span, 2); // ok
}
auto foo3() {
return std::ranges::find(std_span, 2); // ok
}
The error message is something like
error: no type named 'type' in 'struct boost::range_iterator<const std::span<const int, 9>, void>'
- Lingua principale
- C++
- Stelle
- 45
- Fork
- 104
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di boostorg/range
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
-
Bad is_sorted docsAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 55/100
Tutte le issue di boostorg/range
Issue simili
-
ws_bridge: stripping format=evr for matchmaker connections can concatenate the path and queryApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
EchoTools/nevr-runtime#116 ·
I maintainer di solito rispondono entro 1 giorno
-
code-quality libc++
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
llvm/llvm-project#229284 ·
I maintainer di solito rispondono entro 1 giorno
-
test-issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
llvm/offload-test-suite#1557 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
iOS: hidden scale bar invalidates its intrinsic content size on every layout pass of MLNMapViewAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
maplibre/maplibre-native#4723 ·
I maintainer di solito rispondono entro 1 giorno