Zastanawiam się, dlaczego, w C++, typ zwrotu std::reverse_iterator::operator[]
pozostaje nieokreślony. Czy nie powinien to być std::reverse_iterator::reference
?Dlaczego zwracany typ std :: reverse_iterator :: operator [] nie jest określony?
Odpowiedz
Jest to w rzeczywistości zbyteczny relaks; Począwszy od LWG 448 i LWG 299 (ponad N3066), które są włączone w C++ 11, typy zwrotów iteratorów "operator[]
będą wymienialne na reference
. Oryginalny problem LWG, który wprowadził tę underspecyfikację (386), został niestety rozwiązany przed zmianą wymagań dotyczących typu zwrotu: operator[]
.
Ponieważ typ powrót iteratory operator[]
jest teraz upoważniona być wymienialny na reference
, rodzaj powrotu reverse_iterator::operator[]
może być tylko reference
wyraźnie - i to w obie libC++ i libstdC++.
... i również MSVC. Chcesz zgłosić problem z LWG? –
@ T.C. Na tym. :) – Columbo
- 1. Operator! = Jest niejednoznaczny dla std :: reverse_iterator C++
- 2. std :: tr1 :: mem_fn typ zwracany
- 3. Dlaczego operator std :: unique_ptr * throw i operator-> nie rzuca?
- 4. Dlaczego nie mogę używać wyraźny konstruktora do skonstruowania typ zwracany
- 5. C++ przeciążenie typ zwracany włamać
- 6. Na Pustki typ zwracany
- 7. Dlaczego operator [] nie jest tymczasowym constexpr std :: tablica?
- 8. Dlaczego zwracany typ void jest zadeklarowany jako struct w .NET?
- 9. wskaźniki funkcyjne i typ zwracany konwersje
- 10. Jak usunąć * I KONTYNUUJ * używając std :: reverse_iterator?
- 11. Dlaczego reverse_iterator ma domyślny konstruktor?
- 12. Dlaczego nie jest to typ POD?
- 13. Sprzeczne typ zwracany w realizacji „supportedInterfaceOrientations”: - Ostrzeżenie
- 14. C++ sposób identyczny podpis ale inny typ zwracany
- 15. Dlaczego operator jest ukryty w przestrzeni nazw?
- 16. Sprawdzanie, czy określony typ jest delegatem akcji
- 17. Kiedy jest std :: string_view :: operator == naprawdę constexpr?
- 18. XStream - unmarshalling - Typ określony w XML nie jest widoczny
- 19. Dlaczego konieczne jest jawne wywoływanie Myclass :: operator string() ze std :: string :: operator +()?
- 20. Metoda typ zwracany w klasie wymiar java.awt
- 21. Dlaczego to jest `<T> Typ` jako typ zwracany w języku Java Generics, a nie `Type <T>`?
- 22. Dlaczego std :: string :: append() jest mniej wydajny niż std :: string :: operator +()?
- 23. Co to jest typ danych zwracany przez operację sumowania bitowego?
- 24. operator std :: string() const?
- 25. DataContract i dynamiczny typ zwracany WCF
- 26. Dlaczego std :: less jest szablonem klasy?
- 27. Metoda z Generic typ zwracany w Javie
- 28. Export typ zwracany funkcji w maszynopisie
- 29. Dlaczego nie ma operatora [] dla std :: list?
- 30. Dlaczego nie ma std :: protect?
Zobacz LWG 386/2347. – Columbo
@Columbo Czy możesz podać link do niego? – Vincent
Zobacz także LWG 1051. – Columbo