Biedt een efficiënte, niet-bezittende view op aaneengesloten geheugengebieden van willekeurige containers of buffers.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: cd35d03068cbHerkomstOpen vragen (3)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Biedt een efficiënte, niet-bezittende view op aaneengesloten geheugengebieden van willekeurige containers of buffers.
De klasse ara::core::Span stelt een niet-bezittende, aaneengesloten view op geheugengebieden beschikbaar en maakt de efficiënte inkapseling van arrays of buffers zonder kopieerkosten mogelijk [SWS_CORE_01942]. Toepassingen gebruiken de klasse typisch voor het overdragen van datavensters evenals voor het genereren van deel-views door middel van slicing-operaties. Aanroepers moeten strikt waarborgen dat de levensduur van het onderliggende geheugen die van de view overtreft en dat bij bewerkingen zoals subspan() geldige grenzen in acht worden genomen, aangezien grensschendingen ongedefinieerd gedrag veroorzaken [SWS_CORE_01966].
Context
De klasse ara::core::Span vormt een aan de standaard conforme implementatie van een aaneengesloten sequentie-view, die zich oriënteert op std::span uit [views.span]. Als lichtgewicht abstractie kapselt zij een pointer naar het eerste element evenals het aantal beschikbare elementen in, zonder zelf eigenaar van de data te zijn. Zij dient als uniforme interface tussen componenten die data leveren en algoritmen die deze data verwerken.
Tot de primaire interactiepartners behoren:
Aanroepende applicatielogica: Gebruikt de view voor lees- of schrijftoegang tot sequentiële geheugengebieden zonder geheugenallocaties of kopieerkosten.
Deel-views (subspans): Verdere instanties van ara::core::Span die door ontleding voortkomen uit een bovenliggende view [SWS_CORE_01965][SWS_CORE_01966].
Instanties van ara::core::Span zijn ontworpen als zuivere waarde-objecten zonder eigen resourcebeheer. Het aanmaken vindt naar keuze plaats als een lege span via de standaardconstructor [SWS_CORE_01941], door directe opgave van startadres en aantal elementen [SWS_CORE_01942] of via een pointerinterval bestaande uit begin en einde [SWS_CORE_01943]. Daarnaast staan getypeerde constructors voor C-arrays [SWS_CORE_01944], containers van het type ara::core::Array[SWS_CORE_01945][SWS_CORE_01946] en generieke containers [SWS_CORE_01947][SWS_CORE_01948] ter beschikking. Bestaande spans kunnen via de standaard copy-constructor [SWS_CORE_01949] of via converterende constructors met compatibele elementtypen en extents worden gedupliceerd [SWS_CORE_01950].
Aangezien ara::core::Span geen enkel eigenaarschap van de gereferentieerde data overneemt, heeft de destructor de standaardimplementatie en is deze gespecificeerd als noexcept=default[SWS_CORE_01951]. Hieruit volgt de fundamentele invariant (interpretatie: aanname 1) dat de levensduur van de onderliggende geheugenbuffer steeds ten minste de levensduur van alle daarnaar verwijzende span-objecten moet omvatten; bij vernietiging van de buffer worden resterende spans ongeldig. Vraag (open) De toekenning via de toekenningsoperator vindt triviaal plaats via een shallow copy [SWS_CORE_01952]. Aangezien alle toegangsfuncties gedeclareerd zijn als noexcept en geen interne synchronisatiemechanismen bezitten, mag worden aangenomen dat gelijktijdige leestoegang tot dezelfde span-instantie vanuit meerdere threads veilig is, mits het onderliggende geheugengebied niet parallel wordt gewijzigd (interpretatie: aanname 2). Vraag Q-be5a38c1097c4ee1 (open)
Gebruikspad
Een typische usecase omvat het inkapselen van een aanwezig datablok, het controleren van dimensies, de extractie van relevante segmenten en de toegang tot de elementen:
Aanmaken van de view: De toepassing instantieert ara::core::Span op een aaneengesloten buffer, bijvoorbeeld vanuit een instantie van ara::core::Array[SWS_CORE_01945] of via ruwe datapointers met opgave van lengte [SWS_CORE_01942].
Toestand- en dimensiecontrole: Voorafgaand aan verdere verwerking wordt de dimensionering geverifieerd via empty()[SWS_CORE_01969], size()[SWS_CORE_01967] of size_bytes()[SWS_CORE_01968], of wordt het basisadres opgevraagd door middel van data()[SWS_CORE_01971].
Alle methoden van ara::core::Span zijn gedeclareerd als exceptieveilig en noexcept; er worden noch C++-excepties geworpen, noch foutobjecten zoals ara::core::ErrorCode geretourneerd. Fouttoestanden vloeien primair voort uit schendingen van precondities, die direct leiden tot ongedefinieerd gedrag (Undefined Behavior):
Grootte-overschrijding bij prefixen en suffixen: Wordt bij first() een aantal opgevraagd dat de huidige grootte overschrijdt (Count > size() respectievelijk count > size()), dan is het gedrag ongedefinieerd [SWS_CORE_01961][SWS_CORE_01962]. Dezelfde preconditieschending leidt bij last() eveneens tot ongedefinieerd gedrag [SWS_CORE_01963][SWS_CORE_01964].
Ongeldige deelgebiedparameters bij subspan: De aanroep van subspan() vereist dwingend dat offset <= size() geldt en bij een expliciet opgegeven count (ongelijk aan dynamic_extent) bovendien aan count <= size() - offset wordt voldaan. Veronachtzaming leidt tot ongedefinieerd gedrag [SWS_CORE_01966].
Bereikoverschrijding bij elementtoegang: De indexoperator operator[][SWS_CORE_01970] evenals de toegangsfuncties front()[SWS_CORE_01959] en back()[SWS_CORE_01960] voeren geen bereikcontrole (bounds checking) uit. Toegang buiten de geldige grenzen leidt vermoedelijk direct tot ongedefinieerde geheugentoegangen (interpretatie: aanname 3). Vraag (open)
Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive R25-11 en is geautomatiseerd gegenereerd.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 557e5938932aHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De memberfunctie crbegin van de klasse ara::core::Span levert een constante reverse-iterator op die naar het laatste element van de gerefereerde reeks wijst [SWS_CORE_01978]. De functie vereist het headerbestand #include "ara/core/span.h" en volgt het gebruik in [views.span][SWS_CORE_01978]. De retourwaarde van het type const_reverse_iterator maakt een alleen-lezen achterwaartse iteratie over het door de span beschreven geheugenbereik mogelijk [SWS_CORE_01978].
Aangezien crbegin als constexpr is gedeclareerd, kan de evaluatie reeds tijdens compile-time plaatsvinden [SWS_CORE_01978]. Met betrekking tot foutafhandeling is de functie gedeclareerd als noexcept en ingedeeld als exception safe; deze werpt bijgevolg geen excepties en er bestaan noch foutcodes, noch DET- of DEM-meldingen [SWS_CORE_01978].
Wat betreft gelijktijdigheid en beperkingen is de methode const-gekwalificeerd; interpretatie: parallelle leesaanroepen op dezelfde instantie zijn vermoedelijk zonder externe synchronisatie thread-safe, zolang het onderliggende geheugenbereik niet gelijktijdig wordt gewijzigd [SWS_CORE_01978]. Vraag Q-d63c0354556f1d23 (open)
In interactie met andere elementen van ara::core volgt crbegin een uniform patroon voor containers en views:
ara::core::Array biedt een overeenkomstige constexpr- en exception safe-interface [SWS_CORE_01260].
ara::core::StringView stelt crbegin eveneens beschikbaar als constexpr en exception safe[SWS_CORE_02126].
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 464fedb451c3HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De memberfunctie crend van de template-klasse ara::core::Span ([SWS_CORE_01979]) levert synchroon een constante achterwaartse iterator van het type const_reverse_iterator op. De functie vereist het invoegen van het headerbestand ara/core/span.h en accepteert geen aanroepparameters. Volgens de specificatie richt het gedrag zich naar het standaardgebruik in [views.span]. Interpretatie: De geretourneerde iterator stelt vermoedelijk de theoretische positie direct vóór het eerste element van het bereik voor en dient zodoende als stopvoorwaarde bij een achterwaartse iteratie. Vraag Q-83d4ed4a6e68fb19 (open)
Foutafhandeling en gelijktijdigheid
De functie is gedeclareerd als noexcept en expliciet geclassificeerd als exception safe ([SWS_CORE_01979]). Een aanroep triggert geen excepties en er bestaan noch foutretourwaarden noch specifieke foutregistraties via DET of DEM. Omdat crend is gedefinieerd als constexpr, kan de evaluatie direct tijdens compile-time plaatsvinden. Als zuivere const-memberfunctie verandert deze de toestand van de instantie niet; gelijktijdige leestoegangen tot dezelfde Span-instantie zijn daarom vermoedelijk zonder synchronisatie thread-safe. Vraag Q-d90bd6b4f01c8af6 (open)
Samenspel
Het gedrag van crend in ara::core::Span past naadloos binnen de sequence- en container-interfaces van ara::core:
ara::core::Array ([SWS_CORE_01261]) en ara::core::StringView ([SWS_CORE_02127]) bieden identieke, eveneens als constexpr en noexcept gedeclareerde signaturen.
ara::core::Vector ([SWS_CORE_01343]), ara::core::Map ([SWS_CORE_01451]) en ara::core::BasicString ([SWS_CORE_03050]) bieden analoge const_reverse_iterator-eindpunten voor dynamische containers.
Deze gebruiksinstructie is gegenereerd door een AI op basis van de specificatie AUTOSAR R25-11.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: daa0dd011e1eHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De template-memberfunctie first<Count>() van de klasse ara::core::Span genereert synchroon een nieuw deelbereik over de eerste Count elementen van de huidige span en levert deze terug als ara::core::Span<element_type, Count>[SWS_CORE_01961]. De functie is gedeclareerd in het headerbestand ara/core/span.h en gespecificeerd als constexpr en const noexcept[SWS_CORE_01961].
Wat betreft de foutafhandeling is de functie ingeschaald als uitzonderingsveilig (exception safe) en werpt deze geen exceptions [SWS_CORE_01961]. Specifieke foutcodes, foutretourwaarden of meldingen aan DET of DEM zijn niet gedefinieerd. Er geldt echter een bindende preconditie: het gedrag is ongedefinieerd wanneer de templateparameter Count groter is dan de runtimegrootte van de span (Count > size()) [SWS_CORE_01961]. Aanroepers moeten er daarom voor zorgen dat er voldoende elementen aanwezig zijn.
Aangezien de methode gedeclareerd is als const en het onderliggende Span-object niet wijzigt, is een gelijktijdige lezende toegang over meerdere threads heen vermoedelijk zonder aanvullende vergrendelingen thread-safe (interpretatie). Vraag Q-215ae1cc00b7a590 (open) Worden de geadresseerde elementen van de span ondertussen door andere threads gewijzigd, dan moet de toegang extern worden gesynchroniseerd.
Deze tekst is opgesteld door een AI. Alle inhoudelijke gegevens zijn uitsluitend gebaseerd op de specificatie van AUTOSAR R25-11.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 2bb3b51c18a9HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De elementfunctie first wordt aangeroepen op een instantie van ara::core::Span (bereitgesteld via de header ara/core/span.h) om een deelweergave van de eerste elementen van een reeks te genereren [SWS_CORE_01962]. Als parameter wordt het gewenste aantal elementen count van het type size_type meegegeven [SWS_CORE_01962]. De retourwaarde is een Span<element_type, dynamic_extent>, die het overeenkomstige prefix afbeeldt [SWS_CORE_01962]. Het gedrag richt zich daarbij naar de semantiek van [views.span] uit de C++-standaard [SWS_CORE_01962]. Door de declaratie als constexpr en noexcept werkt de methode synchroon, uitzonderingsvrij en kan zij al tijdens compileertijd worden geëvalueerd [SWS_CORE_01962].
Foutafhandeling en randvoorwaarden
De functie is gespecificeerd als exception-safe (exception safe); foutcodes of specifieke foutmeldingen (zoals DET of DEM) zijn niet voorzien [SWS_CORE_01962]. Voor de aanroeper geldt de volgende bindende randvoorwaarde:
Het gedrag van de functie is ongedefinieerd (undefined behavior) als count > size() is [SWS_CORE_01962].
De toepassende programmacode moet daarom vóór de aanroep zelfstandig verifiëren dat het gevraagde aantal elementen de werkelijke grootte van de span niet overschrijdt.
Gelijktijdigheid en beperkingen
Als constante elementfunctie (const) wijzigt first de aangeroepen span niet [SWS_CORE_01962]. Over thread-safety zwijgt de specificatie; gelijktijdige leestoegangen tot dezelfde span evenals de onderliggende sequentiegegevens zijn echter vermoedelijk niet-kritisch (interpretatie). Vraag Q-8c3b51e54157dc12 (open) Worden de gerefereerde elementen gelijktijdig door andere threads gewijzigd, dan is externe synchronisatie vereist.
Deze tekst is gegenereerd door een AI op basis van de AUTOSAR-specificatie R25-11.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 762c5c7c0428HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De template-elementfunctie [SWS_CORE_01963] van de klasse ara::core::Span (header #include "ara/core/span.h") levert synchroon een deelweergave van de laatste Count elementen van de onderliggende sequentie. Zij volgt de semantiek van [views.span][SWS_CORE_01963]. Aangezien de parameter Count als template-argument wordt meegegeven, bezit het resulterende Span-object een statische omvang die reeds tijdens compileertijd vaststaat.
De operatie is gedeclareerd als constexpr, const en noexcept en gespecificeerd als exception-safe (exception safe) [SWS_CORE_01963]. Foutretouren via foutcodes of meldingen aan DET of DEM zijn voor deze functie niet voorzien. Er is echter sprake van ongedefinieerd gedrag indien Count > size() is [SWS_CORE_01963]. Aanroepers moeten daarom vóór de instantiëring respectievelijk uitvoering waarborgen dat de actuele span ten minste het vereiste aantal elementen omvat.
Met betrekking tot gelijktijdigheid doet de specificatie geen expliciete uitspraak over thread-safety; als neveneffectvrije const-methode is gelijktijdige leestoegang van meerdere threads tot dezelfde Span-instantie vermoedelijk echter niet-kritisch, mits de gerefereerde elementen in het geheugen niet parallel worden gewijzigd. Vraag Q-120ccf3995c86b47 (open)
In de wisselwerking binnen de module vult de functie de overbelasting [SWS_CORE_01964] aan: terwijl de onderhavige variant [SWS_CORE_01963] een vaste extent vereist tijdens compileertijd, maakt [SWS_CORE_01964] het opgeven van een variabel aantal elementen tijdens runtime mogelijk en levert een Span met dynamische omvang op (dynamic_extent).
Deze tekst werd door een AI-systeem gegenereerd op basis van de specificatiegegevens van AUTOSAR R25-11.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: f839f8230576HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De lidfunctie last van de klasse ara::core::Span genereert een deelweergave (subspan), die de laatste count elementen van de actuele sequentie omvat [SWS_CORE_01964]. De aanroep vindt synchroon plaats en levert een Span<element_type, dynamic_extent> op [SWS_CORE_01964]. Aangezien de functie gedeclareerd is als constexpr en noexcept, kan deze ook tijdens compile-time worden geëvalueerd en garandeert deze volledige uitzonderingsveiligheid (exception safe) [SWS_CORE_01964].
Foutafhandeling en randvoorwaarden
De functie werpt geen uitzonderingen op. Er is sprake van een foutieve aanroep wanneer het argument count het daadwerkelijke aantal aanwezige elementen overschrijdt (count > size()); in dat geval is het gedrag ongedefinieerd [SWS_CORE_01964]. Aanroepers moeten daarom vóór het doorgeven van dynamische waarden controleren of het vereiste aantal elementen binnen het geldige bereik ligt.
Gelijktijdigheid en wisselwerking
Aangezien last een toestandloze leesbewerking op de span-instantie vormt, zijn gelijktijdige aanroepen via dezelfde Span vermoedelijk ongevaarlijk, zolang de onderliggende sequentie-elementen niet worden gemodificeerd. Vraag Q-ec2beaa99d9627c0 (open) In tegenstelling tot de template-variant last<Count>()[SWS_CORE_01963], die de grootte statisch vastlegt, bepaalt deze overloading de lengte tijdens runtime. Nieuw gegenereerde sequenties, bijvoorbeeld via MakeSpan[SWS_CORE_01991], kunnen zo flexibel worden gereduceerd tot hun suffix.
Deze gebruiksinstructie is automatisch gegenereerd. Alle gegevens zijn gebaseerd op de specificatie van AUTOSAR Adaptive Core R25-11.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 3b4cbcd12a0eHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De memberfunctie size_bytes van de klasse ara::core::Span levert de totale grootte van het gereferentieerde geheugengebied in bytes op [SWS_CORE_01968]. De semantiek komt daarbij overeen met de definitie in standaard-C++ conform [views.span][SWS_CORE_01968].
Gebruik
De functie wordt synchroon aangeroepen op een bestaande instantie van ara::core::Span en vereist het includeren van de header ara/core/span.h[SWS_CORE_01968]:
Aanroepcontext en parameters: De methode is parameterloos en gedeclareerd als const; deze wijzigt de toestand van de span dus niet [SWS_CORE_01968]. Door de aanduiding als constexpr kan de waarde reeds tijdens compile-time worden geëvalueerd, mits de onderliggende context dit toestaat [SWS_CORE_01968].
Retourwaarde: Geeft een waarde van het type size_type terug, die de bytegrootte van het weergegeven geheugen representeert [SWS_CORE_01968].
Foutafhandeling en uitzonderingsveiligheid
De functie is gedeclareerd als noexcept en specificeert het garantieniveau exception safe[SWS_CORE_01968]. Er treden geen C++-exceptions op en er worden geen foutcodes geretourneerd [SWS_CORE_01968].
Gelijktijdigheid en beperkingen
Aangezien size_bytes een zuiver lezende bewerking (const) zonder neveneffecten is, is de gelijktijdige aanroep op dezelfde instantie vanuit meerdere threads niet-kritiek, mits het gereferentieerde Span-object niet tegelijkertijd wordt gewijzigd (interpretatie: standaard thread safety voor const-methoden) [SWS_CORE_01968]. Vraag Q-ea768d4f6fa1d12f (open)
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de AUTOSAR-specificatie R25-11.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: dca812068dbfHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De elementfunctie subspan van de klasse ara::core::Span genereert een deelweergave op een bestaande span ([SWS_CORE_01965]). Via de template-parameters Offset en Count worden de startpositie en het aantal elementen statisch tijdens compileertijd vastgelegd; voor Count is standaard dynamic_extent ingesteld. De aanroep verloopt synchroon, is gedeclareerd als constexpr en noexcept en geldt als exception-safe ([SWS_CORE_01965]).
Wat betreft het gedrag verwijst de specificatie naar de C++-standaardconstructie [views.span] ([SWS_CORE_01965]). Anders dan bij de overladen runtimefunctie [SWS_CORE_01966], waarbij foutieve grenzen expliciet tot ongedefinieerd gedrag leiden, vindt de controle hier primair plaats tijdens het compileren. Interpretatie: bij een statisch bekend aantal elementen leidt een overschrijding van de grenzen van Offset of Count vermoedelijk tot een fout tijdens het compileren. Vraag Q-c1b2dd93177fb266 (open)
De functie is beschikbaar via de header #include "ara/core/span.h" ([SWS_CORE_01965]). Zij vult de complementaire overbelasting [SWS_CORE_01966] aan voor gevallen waarin deelgebieden reeds tijdens compileertijd vaststaan. Aangezien subspan een constante elementfunctie is, zijn gelijktijdige leestoegangen tot hetzelfde bronobject niet-kritisch, mits het gerefereerde geheugenelement niet parallel wordt gewijzigd.
Deze gebruiksinstructie is automatisch gegenereerd op basis van de specificatie AUTOSAR Adaptive R25-11.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: a68a8b4ea86aHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De lidfunctie subspan van ara::core::Span ([SWS_CORE_01966]) maakt een deelweergave (subspan) op de onderliggende gegevens. Deze wordt via de header ara/core/span.h geïncludeerd. Als parameters accepteert deze een verschuiving (offset) alsook optioneel het aantal elementen (count), dat standaard is ingesteld op dynamic_extent. Wanneer count == dynamic_extent wordt doorgegeven, omvat de gegenereerde deelweergave vermoedelijk alle resterende elementen vanaf de opgegeven verschuiving. Vraag Q-f300852e8a1a87c8 (open) De functie is gedeclareerd als constexpr en noexcept en geldt volgens de specificatie als uitzonderingsveilig (exception safe).
Foutafhandeling en randvoorwaarden
De functie signaleert fouten noch via foutcodes noch via C++-excepties. In plaats daarvan leidt schending van de gedefinieerde precondities direct tot ongedefinieerd gedrag ([SWS_CORE_01966]). Een aanroep is alleen gedefinieerd wanneer aan de volgende voorwaarde is voldaan:
Aanroepers moeten deze bereikgrenzen vóór de aanroep zelfstandig verifiëren om ongedefinieerd gedrag tijdens runtime uit te sluiten.
Samenspel
In tegenstelling tot de template-variant [SWS_CORE_01965], die verschuiving en aantal elementen reeds tijdens compile-time via templateparameters bindt, staat [SWS_CORE_01966] het dynamisch doorgeven van runtimewaarden toe. Als retourtype levert deze altijd een instantie van Span<element_type, dynamic_extent> op.
Deze tekst is gegenereerd door een AI en dient als oriëntatiehulp aan de hand van de AUTOSAR-specificatie.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel