Dient voor de fouttolerante teruggave van een referentie naar een aanwezig object of van een opgetreden foutcode.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 8d8a51a8c902HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Dient voor de fouttolerante teruggave van een referentie naar een aanwezig object of van een opgetreden foutcode.
De specialisatie ara::core::Result<T&, E> kapselt ofwel een niet-bezittende referentie naar een succesvol bewerkingsresultaat van het type T& ([SWS_CORE_00902]) ofwel een opgetreden foutcode van het type E in. Gebruikers controleren de aanwezigheid van een waarde typisch via HasValue() ([SWS_CORE_00918]) voordat zij via dereferentie-operatoren of Value() toegang krijgen tot het gerefereerde doelobject. Aangezien de instantie het gerefereerde object niet zelf bezit, dient de aanroeper er vermoedelijk voor te zorgen dat dit gedurende de gehele gebruiksduur van het resultaat geldig blijft in het geheugen. Vraag Q-48d71186fb35af77 (open)
Context
De templatespecialisatie ara::core::Result<T&, E> kapselt ofwel een referentie naar een succesvol bewerkingsresultaat van het type value_type ([SWS_CORE_00902]) ofwel een foutwaarde van het type error_type ([SWS_CORE_00903]) in. Als gestandaardiseerde retourstructuur in module core maakt ze foutrobuuste programmering mogelijk zonder het verplichte gebruik van C++-excepties in de reguliere stroom. Volgens de specificatie dwingt de implementatie tijdens compileertijd af dat het fouttype E overeenkomt met het type ara::core::ErrorCode; een afwijkende toewijzing leidt tot een compilatiefout. Tot de interactiepartners behoren gegevensleverende services, aanroepende componenten voor resultaatverificatie en het extern beheerde doelobject dat rechtstreeks via de gebonden referentie wordt benaderd.
Levenscyclus
Een instantie wordt deterministisch geïnitialiseerd met ofwel een referentie naar een bestaande lvalue ofwel een fout. Initialisatie met een referentie vindt plaats via de constructor [SWS_CORE_00908] of de statische factory-methode FromValue[SWS_CORE_00904]; het doorgeven van rvalues is niet toegestaan. Fouttoestanden worden aangemaakt via constructors ([SWS_CORE_00909], [SWS_CORE_00910]) of factories zoals FromError ([SWS_CORE_00905], [SWS_CORE_00906], [SWS_CORE_00907]). Er bestaat geen standaardconstructor. Copy- en move constructors ([SWS_CORE_00911], [SWS_CORE_00912]) nemen de huidige toestand van een andere instantie over.
Wat de eigendomsverhoudingen betreft, bindt Result<T&, E> slechts een referentie en neemt het geen eigendom of levensduurbeheer voor het gerefereerde doelobject op zich. De aanroeper dient er daarom vermoedelijk voor te zorgen dat het doelobject gedurende de gehele bestaansduur van de Result-instantie geldig blijft. Vraag (open) Toestandswisselingen tijdens runtime worden uitgevoerd via toewijzingsoperatoren ([SWS_CORE_00914], [SWS_CORE_00915]), die de interne referentie aan het nieuwe doel koppelen of een fout overdragen. Bovendien brengt EmplaceError[SWS_CORE_00916] de instantie direct in een fouttoestand, terwijl Swap[SWS_CORE_00917] de inhoud van twee instanties omwisselt. De destructor [SWS_CORE_00913] gedraagt zich triviaal, mits E triviaal vernietigbaar is. Parallelle leestoegangen tot waarde of fout zijn thread-safe, terwijl toestandswijzigende operaties zoals toewijzingen, Swap of EmplaceError niet thread-safe zijn.
Het reguliere verloop omvat statuscontrole en gerichte evaluatie:
Statuscontrole: Voorafgaand aan de toegang controleert de aanroeper via HasValue()[SWS_CORE_00918] of de conversieoperator operator bool[SWS_CORE_00919] of er een waarde aanwezig is.
Optionele en fallback-gebaseerde toegangen: Via Ok() ([SWS_CORE_00926], [SWS_CORE_00927]) kan de referentie worden omgezet naar een ara::core::Optional. De methode ValueOr() ([SWS_CORE_00933], [SWS_CORE_00934]) levert een kopie van de gerefereerde waarde of een meegegeven vervangende waarde op.
Monadische operaties: Met Bind()[SWS_CORE_00941] wordt een transformatiefunctie toegepast op de referentie en wordt het resultaat verpakt, terwijl fouten automatisch worden doorgestuurd. Resolve() ([SWS_CORE_00939], [SWS_CORE_00940]) roept bij fouten een vervangende functie aan die een compatibele referentie levert.
Uitzonderingsafhandeling: De aanroepen ValueOrThrow() ([SWS_CORE_00938], [SWS_CORE_00949]) werpen in geval van een fout de aan de fout gekoppelde exceptie; zij nemen alleen deel aan overloadresolutie als C++-excepties in de compiler zijn ingeschakeld.
Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive Platform R25-11 (module core). Ze is voor autodocs geautomatiseerd gecureerd.
Apply the given Callable to the value of this instance, and return a new Result with the result of the call. The Callable is expected to be compatible to one of these two interfaces: • Result<XXX, E> f(const T&); • XXX f(const T&); meaning that the Callable either returns a Result<XXX> or a XXX directly, where XXX can be any type that is suitable for use by class Result. The return type of this function is decltype(f(Value())) for a template argument F that returns a Result type, and it is Result<decltype(f(Value())), E> for a template argument F that does not return a Result type. If this instance does not contain a value, a new Result<XXX, E> is still created and returned, with the original error contents of this instance being copied into the new instance.
Return the contained error or the given default error. If *this contains an error, it is returned. Otherwise, the specified default error is returned, static_cast’d to E
Return the referred-to value or return the result of a function call. If *this contains a value, it is returned. Otherwise, the specified callable is invoked and its return value which is to be compatible to type T& is returned from this function. The Callable is expected to be compatible to this interface: const T& f(const E&);
OverloadsResolve2
template <typename F> const T & Resolve (F &&f) const;SWS_CORE_00939
template <typename F> T & Resolve (F &&f) const;SWS_CORE_00940
Return a copy of the referred-to value or the given default value. If *this contains a value, it is returned. Otherwise, the specified default value is returned, static_ cast’d to T.
Copy-assignment operator If other contains a value, the contained reference is rebound to the referee of other. If other contains an error, the contained error is copy-constructed or copy-assigned from the one contained by other.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 78ad946285a2Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De memberfunctie const T * operator-> () const noexcept maakt synchrone leestoegang tot de gereferentieerde waarde van een ara::core::Result<T &, E>-object mogelijk [SWS_CORE_00922]. Deze accepteert geen argumenten en levert als retourwaarde een constante pointer (const T *) naar het gereferentieerde doelobject op [SWS_CORE_00922]. Voor het gebruik moet de header #include "ara/core/result.h" worden ingevoegd [SWS_CORE_00922].
Foutafhandeling
De operatie is gedeclareerd als noexcept en heeft de eigenschap exception safe[SWS_CORE_00922]. Als het object geen waarde bevat, is er sprake van een schending van de voorwaarde (violation) ResultWithNoValue[SWS_CORE_00922]. Aanroepers moeten daarom vóór de dereferentie controleren of de instantie daadwerkelijk een geldige waarde bevat.
Gelijktijdigheid en beperkingen
De functie is gespecificeerd als thread-safe[SWS_CORE_00922]. Omdat het om een const-memberfunctie gaat, is gelijktijdige leestoegang tot dezelfde instantie veilig. De toegang tot het doelobject zelf is echter onderworpen aan de thread-safety-garanties van het type T.
Samenspel
De operator vormt de constante tegenhanger van de niet-constante overload T * operator-> () noexcept[SWS_CORE_00923]. Terwijl de niet-constante variant een modificeerbare pointer T* retourneert [SWS_CORE_00923], dwingt deze versie onveranderlijke toegang tot de gereferentieerde instantie af.
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: 798448906bb1HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De memberfunctie operator-> maakt directe toegang mogelijk tot de gereferentieerde waarde van een instantie van ara::core::Result<T&, E> conform [SWS_CORE_00923]. De functie vereist het headerbestand #include "ara/core/result.h", accepteert geen parameters en retourneert een pointer van het type T* naar de aanwezige resp. gereferentieerde waarde. De aanroep wordt synchroon uitgevoerd en is gedeclareerd met noexcept.
Foutafhandeling en randvoorwaarden
Als het object op het moment van toegang geen waarde bevat, is er sprake van een schending van de specificatie in de vorm van een ResultWithNoValue-Violation[SWS_CORE_00923]. Specifieke DET- of DEM-foutmeldingen zijn voor deze memberfunctie niet aangegeven. Wat betreft concurrency en fouttolerantie is de operator geclassificeerd als thread-safe en als exception safe[SWS_CORE_00923]. Aanroepers moeten vermoedelijk vóór de aanroep verifiëren dat de instantie daadwerkelijk een geldige waarde bevat, om het optreden van de schending te voorkomen. Vraag Q-a4b13cd34a40eb19 (open)
Samenspel
In het samenspel met de template ara::core::Result<T&, E> vult deze niet-constante memberfunctie de overeenkomstige constante overload const T * operator-> () const noexcept uit [SWS_CORE_00922] aan, die aan dezelfde beveiligingsregels is onderworpen, maar een alleen-lezen pointer (const T*) levert.
Deze gebruiksinstructie is automatisch gegenereerd door een AI op basis van de specificatie.
Apply the given Callable to the value of this instance, and return a new Result with the result of the call. The Callable is expected to be compatible to one of these two interfaces: • Result<XXX, E> f(const T&); • XXX f(const T&); meaning that the Callable either returns a Result<XXX> or a XXX directly, where XXX can be any type that is suitable for use by class Result. The return type of this function is decltype(f(Value())) for a template argument F that returns a Result type, and it is Result<decltype(f(Value())), E> for a template argument F that does not return a Result type. If this instance does not contain a value, a new Result<XXX, E> is still created and returned, with the original error contents of this instance being copied into the new instance.
Return the contained error or the given default error. If *this contains an error, it is returned. Otherwise, the specified default error is returned, static_cast’d to E
Return the contained error or the given default error. If *this contains an error, it is std:: move’d into the return value. Otherwise, the specified default error is returned, static_cast’d to E
Build a new Result from an error that is constructed in-place from the given arguments. This function shall not participate in overload resolution unless: std::is_constructible<E, Args&&...>::value is true, and • the first type of the expanded parameter pack is not E, and • the first type of the expanded parameter pack is not a specialization of Result
template <typename F> const T & Resolve (F &&f) const;
Return the referred-to value or return the result of a function call. If *this contains a value, it is returned. Otherwise, the specified callable is invoked and its return value which is to be compatible to type T& is returned from this function. The Callable is expected to be compatible to this interface: const T& f(const E&);
Return the referred-to value or return the result of a function call. If *this contains a value, it is returned. Otherwise, the specified callable is invoked and its return value which is to be compatible to type T& is returned from this function. The Callable is expected to be compatible to this interface: T& f(const E&);
Return a copy of the referred-to value or the given default value. If *this contains a value, it is returned. Otherwise, the specified default value is returned, static_ cast’d to T.
Return a copy of the referred-to value or the given default value. If *this contains a value, it is returned. Otherwise, the specified default value is returned, static_ cast’d to T.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 81dc031902adHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De synchrone lidfunctie ValueOrThrow van de template-specialisatie ara::core::Result<T &, E> maakt toegang tot de ingesloten waarde mogelijk ([SWS_CORE_00938]). Bij een succesvolle operatie geeft ze een constante referentie (const T &) naar het ingekapselde referentiedoel terug.
Vertegenwoordigt het object een foutgeval, dan werpt de functie de aan de specifieke fout gekoppelde exceptie op (noexcept(false)) ([SWS_CORE_00938]). De specificatie classificeert de uitzonderingsveiligheid van de operatie uitdrukkelijk als niet-uitzonderingsveilig (not exception safe) ([SWS_CORE_00938]).
Met betrekking tot gelijktijdigheid is de methode gedeclareerd als thread-safe ([SWS_CORE_00938]). Een essentiële randvoorwaarde betreft de buildconfiguratie: voor zover C++-exceptions in de compiler-toolchain zijn uitgeschakeld, neemt ValueOrThrow niet deel aan de overbelastingsresolutie ([SWS_CORE_00938]).
Binnen de header ara/core/result.h vormt de functie de constante tegenhanger van de niet-constante referentie-overbelasting [SWS_CORE_00949]. Voor reguliere waardetypen staan analoge overbelastingen voor lvalues en rvalues gereed ([SWS_CORE_00766], [SWS_CORE_00769], [SWS_CORE_00778]), terwijl voor ara::core::Result<void, E> een overbelasting zonder retourwaarde is gedefinieerd ([SWS_CORE_00866]).
Deze gebruiksinstructie is geautomatiseerd opgesteld op basis van de specificatie R25-11.
Return a reference to the contained value or throw an exception.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: cc4ce28e1dcfHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De lidfunctie ValueOrThrow van de template-specialisatie ara::core::Result<T&, E> dient voor de synchrone toegang tot de ingesloten referentiewaarde [SWS_CORE_00949]. Ze neemt geen parameters in ontvangst en geeft een niet-constante referentie T& naar de opgeslagen waarde terug [SWS_CORE_00949].
Bevat het object geen waarde maar een fout, dan is de operatie niet-uitzonderingsveilig (not exception safe) en activeert ze een exceptie van het bij de fout behorende type (noexcept(false)) [SWS_CORE_00949]. Een belangrijke randvoorwaarde voor toepassing is dat de functie niet deelneemt aan de overbelastingsresolutie indien C++-exceptions in de compiler-toolchain zijn uitgeschakeld [SWS_CORE_00949].
Wat betreft gelijktijdigheid is de aanroep gespecificeerd als thread-safe [SWS_CORE_00949]. Binnen de specialisatie voor referenties ara::core::Result<T&, E> bestaat als constante variant de overbelasting [SWS_CORE_00938], die const T& levert. Dit gedrag vult de overbelastingen van het primaire template ara::core::Result voor lvalue-referenties [SWS_CORE_00778], const-lvalue-referenties [SWS_CORE_00766] en rvalue-referenties [SWS_CORE_00769] aan, evenals de specialisatie voor void[SWS_CORE_00866].
Deze gebruiksinstructie is geautomatiseerd opgesteld op basis van de AUTOSAR-specificatie.
Copy-assignment operator If other contains a value, the contained reference is rebound to the referee of other. If other contains an error, the contained error is copy-constructed or copy-assigned from the one contained by other.
Move-assignment operator If other contains a value, the contained reference is rebound to the referee of other. If other contains an error, the contained error is move-constructed or move-assigned from the one contained by other.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel