DEENESPTFRRUARHIKOZHNL

estrutura ara::core::in_place_t

[SWS_CORE_04011] Upstream: RS_AP_00130

struct in_place_t {...};

Denote an operation to be performed in-place. An instance of this type can be passed to certain constructors of ara::core::Optional to denote the intention that construction of the contained type shall be done in-place, i.e. without any copying taking place.

Header-Datei#include "ara/core/utility.h"
Forwarding-Header#include "ara/core/core_fwd.h"
Scopenamespace ara::core

Guia do utilizadorGERADO POR IA

Serve como tipo de tag para a identificação de construções in-place em contêineres como Optional sem operações de cópia.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 011b812476bc Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Serve como tipo de tag para a identificação de construções in-place em contêineres como Optional sem operações de cópia.

A estrutura ara::core::in_place_t serve como tipo de tag para identificar operações nas quais objetos devem ser construídos diretamente no local sem operações de cópia [SWS_CORE_04012]. Uma instância é tipicamente passada para construtores de classes wrapper como ara::core::Optional, a fim de encaminhar os argumentos diretamente para o construtor do tipo contido. A criação ocorre por meio de um construtor padrão explícito, definido como seguro contra exceções e noexcept [SWS_CORE_04012]. Como o tipo não tem estado, não existem cenários de erro ou fases complexas de ciclo de vida.

Contexto

A estrutura ara::core::in_place_t é um tipo de tag dentro do módulo core da AUTOSAR Adaptive Platform e é disponibilizada por meio do arquivo de cabeçalho #include "ara/core/utility.h" [SWS_CORE_04012]. Em interfaces C++ modernas, tal tipo de tag serve como elemento de controle semântico para sobrecargas na criação de objetos. O papel primário de ara::core::in_place_t consiste em declarar operações explicitamente como construções in-place. Uma instância desse tipo é passada para construtores especializados de classes wrapper como ara::core::Optional, para sinalizar a intenção inequívoca de que o objeto mantido no contêiner deve ser construído diretamente no local.

Por meio desse mecanismo, elimina-se a necessidade de criar um objeto temporário fora do contêiner, que subsequentemente precisaria ser transferido para o contêiner por meio de um construtor de cópia ou de movimentação. A classe atua, assim, como intermediária entre o código de aplicação chamador e as rotinas de inicialização de tipos delimitadores, sendo de relevância particular para o gerenciamento de recursos e eficiência no contexto de aplicações críticas para a segurança.

Ciclo de vida

O ciclo de vida de ara::core::in_place_t possui um design minimalista. A classe declara um construtor padrão explícito explicit in_place_t() noexcept = default;, qualificado como noexcept [SWS_CORE_04012]. Como uma estrutura de tag sem estado, o tipo não possui variáveis-membro nem recursos dinâmicos. Interpretação: A estrutura serve exclusivamente como marcação de tipo para a resolução de sobrecargas pelo compilador e não encapsula dados em tempo de execução. Consequentemente, não existem estados complexos nem transições entre fases de vida distintas. Pergunta Q-2fd481aaddfdfbf3 (aberta)

Instâncias de ara::core::in_place_t são usualmente criadas diretamente no ponto de chamada como valores temporários e repassadas imediatamente ao método de destino. Não surgem relações de posse sobre recursos gerenciados e, na destruição do objeto, não há necessidade de quaisquer tarefas de limpeza. Como o tipo é completamente imutável e sem estado, a instanciação e a destruição são intrinsecamente seguras para concorrência e podem ser utilizadas com segurança através de múltiplas threads sem mecanismos de sincronização.

Caminho de utilização

O caminho de uso típico de ara::core::in_place_t concentra-se no encaminhamento direto de argumentos de construção para wrappers como ara::core::Optional. Primeiramente, a aplicação inclui o arquivo de cabeçalho necessário #include "ara/core/utility.h" [SWS_CORE_04012]. Ao declarar ou inicializar um objeto ara::core::Optional, o desenvolvedor passa uma instância de ara::core::in_place_t como primeiro argumento para o construtor. Os argumentos subsequentes correspondem exatamente à lista de parâmetros do construtor do tipo que deve ser mantido no Optional.

Através da avaliação da tag, o construtor do contêiner chama internamente e de forma direta o construtor correspondente do objeto de dados úteis na área de memória interna. Isso evita operações desnecessárias de cópia e movimentação, o que é particularmente vantajoso em tipos que acarretam cópias onerosas ou cujo construtor de cópia foi excluído. Após a chamada bem-sucedida do construtor de destino, a finalidade da tag é integralmente cumprida e a instância temporária da tag é destruída automaticamente.

Cenários de erro

No tocante a cenários de falha e segurança contra exceções, ara::core::in_place_t comporta-se de forma inteiramente isenta de falhas. De acordo com a especificação, o construtor padrão é declarado como noexcept e possui a classificação exception safe [SWS_CORE_04012]. Não existem pré-condições para a chamada do construtor padrão, e não são disparados códigos de erro nem exceções C++.

Caso ocorra um erro durante uma construção in-place, a causa não reside em ara::core::in_place_t, mas exclusivamente no construtor do tipo de dados úteis contido. Se o construtor deste lançar exceções ou reportar estados de erro diante de parâmetros inválidos, os mecanismos definidos de tratamento de erros do contêiner delimitador ou do tipo de destino entram em ação. Para in_place_t em si, não são necessárias pós-condições nem rotinas de limpeza em caso de erro.

Este guia de classe baseia-se nas especificações da AUTOSAR Adaptive para o módulo core e foi curado automaticamente.

Diagrama de classes UML

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__core__in_place_t356 «struct» in_place_t + in_place_t()

Construtores e destrutor

in_place_t função

Default constructor

explicit in_place_t () noexcept=default;

Documentação dos métodos

função in_place_t [SWS_CORE_04012] Upstream: RS_AP_00130

explicit in_place_t () noexcept=default;

Default constructor

Header-Datei#include "ara/core/utility.h"
Scopestruct ara::core::in_place_t
Exception-Sicherheitexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_04012
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_04012@rel:R25-11#8dd3f55c
Content hash
8dd3f55c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_04012
Status: valid/unmigrated Version: rel:R25-11#60e4f564 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_04012@rel:R25-11#60e4f564
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#77f3b9952026-09-30
  • R19-11rel:R19-11#63f31e082026-10-14
  • R20-11rel:R20-11#388fe03d2026-10-14
  • R21-11rel:R21-11#388fe03d2026-10-14
  • R22-11rel:R22-11#5a0e98052026-10-14
  • R23-11rel:R23-11#b9ae75262026-10-14
  • R24-11rel:R24-11#5501994f2026-10-14
  • R25-11rel:R25-11#60e4f5642026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill