Disponibiliza uma vista eficiente e sem posse sobre regiões contíguas de memória de quaisquer contentores ou buffers.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: cd35d03068cbProcedênciaPerguntas em aberto (3)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Disponibiliza uma vista eficiente e sem posse sobre regiões contíguas de memória de quaisquer contentores ou buffers.
A classe ara::core::Span disponibiliza uma vista contígua e sem posse sobre regiões de memória e permite o encapsulamento eficiente de arrays ou buffers sem custos de cópia [SWS_CORE_01942]. As aplicações utilizam a classe tipicamente para a transmissão de janelas de dados, bem como para a criação de subvistas através de operações de slicing. Os chamadores têm de garantir rigorosamente que a vida útil da memória subjacente ultrapasse a da vista e que, em operações como subspan(), sejam cumpridos limites válidos, dado que violações de limites desencadeiam comportamento indefinido [SWS_CORE_01966].
Contexto
A classe ara::core::Span representa uma implementação em conformidade com as normas de uma vista de sequência contígua, que se orienta por std::span de [views.span]. Enquanto abstração leve, encapsula um ponteiro para o primeiro elemento, bem como o número de elementos disponíveis, sem deter a posse dos dados. Serve como interface uniforme entre componentes que fornecem dados e algoritmos que processam esses dados.
Os principais parceiros de interação incluem:
Lógica de aplicação chamadora: Utiliza a vista para acessos de leitura ou de escrita a regiões contíguas de memória sem alocações de memória ou custos de cópia.
Subvistas (subspans): Outras instâncias de ara::core::Span que resultam da divisão a partir de uma vista de nível superior [SWS_CORE_01965][SWS_CORE_01966].
Instâncias de ara::core::Span são concebidas como puros objetos de valor sem gestão própria de recursos. A criação ocorre opcionalmente como span vazio através do construtor padrão [SWS_CORE_01941], mediante especificação direta do endereço inicial e da contagem de elementos [SWS_CORE_01942] ou através de um intervalo de ponteiros composto por início e fim [SWS_CORE_01943]. Além disso, estão disponíveis construtores tipificados para C-arrays [SWS_CORE_01944], contentores do tipo ara::core::Array[SWS_CORE_01945][SWS_CORE_01946], bem como contentores genéricos [SWS_CORE_01947][SWS_CORE_01948]. Spans existentes podem ser duplicados através do construtor de cópia padrão [SWS_CORE_01949] ou através de construtores de conversão com tipos de elementos e extents compatíveis [SWS_CORE_01950].
Dado que ara::core::Span não assume qualquer posse sobre os dados referenciados, o destruidor possui a implementação padrão e está especificado como noexcept=default[SWS_CORE_01951]. Daqui decorre o invariante fundamental (Interpretação: Assunção 1) de que a vida útil do buffer de memória subjacente tem de abranger sempre, no mínimo, a vida útil de todos os objetos de span que apontam para ele; em caso de destruição do buffer, os restantes spans tornam-se inválidos. Pergunta (aberta) A atribuição através do operador de atribuição ocorre trivialmente por cópia superficial (shallow copy) [SWS_CORE_01952]. Como todas as funções de acesso estão declaradas como noexcept e não possuem mecanismos internos de sincronização, é provável que o acesso de leitura simultâneo à mesma instância de span a partir de múltiplas threads seja seguro, desde que a região de memória subjacente não seja modificada em paralelo (Interpretação: Assunção 2). Pergunta Q-be5a38c1097c4ee1 (aberta)
Caminho de utilização
Um caso de utilização típico compreende o encapsulamento de um bloco de dados existente, a verificação de dimensões, a extração de secções relevantes e o acesso aos elementos:
Criação da vista: A aplicação instancia ara::core::Span num buffer contíguo, por exemplo a partir de uma instância de ara::core::Array[SWS_CORE_01945] ou através de ponteiros para dados em bruto com indicação de comprimento [SWS_CORE_01942].
Verificação de estado e de dimensões: Antes do processamento posterior, o dimensionamento é verificado através de empty()[SWS_CORE_01969], size()[SWS_CORE_01967] ou size_bytes()[SWS_CORE_01968], ou o endereço de base é consultado através de data()[SWS_CORE_01971].
Processamento de elementos: O acesso propriamente dito aos dados ocorre de forma aleatória através do operador de índice operator[][SWS_CORE_01970], acessos a elementos de extremidade através de front()[SWS_CORE_01959] e back()[SWS_CORE_01960] ou sequencialmente através de iteradores de begin() a end()[SWS_CORE_01972][SWS_CORE_01973].
Todos os métodos de ara::core::Span estão declarados como seguros contra exceções e noexcept; não são lançadas exceções C++ nem retornados objetos de erro como ara::core::ErrorCode. Estados de erro resultam primariamente de violações de pré-condições, que conduzem diretamente a comportamento indefinido (Undefined Behavior):
Excesso de tamanho em prefixos e sufixos: Se em first() for solicitada uma quantidade que exceda o tamanho atual (Count > size() ou count > size()), o comportamento é indefinido [SWS_CORE_01961][SWS_CORE_01962]. A mesma violação de pré-condição também conduz a comportamento indefinido em last()[SWS_CORE_01963][SWS_CORE_01964].
Parâmetros de intervalo parcial inválidos em subspan: A chamada de subspan() exige imperativamente que se verifique offset <= size() e que, em caso de count explicitamente especificado (diferente de dynamic_extent), seja adicionalmente cumprido count <= size() - offset. O desrespeito conduz a comportamento indefinido [SWS_CORE_01966].
Ultrapassagem de limites no acesso a elementos: O operador de índice operator[][SWS_CORE_01970] e as funções de acesso front()[SWS_CORE_01959] e back()[SWS_CORE_01960] não realizam qualquer verificação de limites (bounds checking). Um acesso fora dos limites válidos conduziria provavelmente de forma direta a acessos de memória indefinidos (Interpretação: Assunção 3). Pergunta (aberta)
Este guia baseia-se na especificação AUTOSAR Adaptive R25-11 e foi criado automaticamente.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 557e5938932aProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função-membro crbegin da classe ara::core::Span retorna um reverse iterator constante que aponta para o último elemento da sequência referenciada [SWS_CORE_01978]. A função requer o arquivo de cabeçalho #include "ara/core/span.h" e segue o uso em [views.span][SWS_CORE_01978]. O valor de retorno do tipo const_reverse_iterator permite uma iteração reversa somente de leitura sobre a região de memória descrita pelo span [SWS_CORE_01978].
Como crbegin é declarada como constexpr, a avaliação já pode ocorrer em tempo de compilação [SWS_CORE_01978]. Em relação ao tratamento de erros, a função é declarada como noexcept e classificada como exception safe; consequentemente, ela não lança exceções e não existem códigos de erro nem mensagens DET ou DEM [SWS_CORE_01978].
Em relação à concorrência e restrições, o método é qualificado como const; Interpretação: Chamadas de leitura paralelas sobre a mesma instância deverão ser thread-safe sem sincronização externa, desde que a região de memória subjacente não seja modificada simultaneamente [SWS_CORE_01978]. Pergunta Q-d63c0354556f1d23 (aberta)
Na interação com outros elementos de ara::core, crbegin segue um padrão uniforme para contêineres e visões:
ara::core::Array oferece uma interface constexpr e exception safe correspondente [SWS_CORE_01260].
ara::core::StringView também disponibiliza crbegin como constexpr e exception safe[SWS_CORE_02126].
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 464fedb451c3ProcedênciaPerguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
A função-membro crend da classe template ara::core::Span ([SWS_CORE_01979]) retorna sincronamente um iterador reverso constante do tipo const_reverse_iterator. A função requer a inclusão do arquivo de cabeçalho ara/core/span.h e não recebe parâmetros de chamada. Conforme a especificação, o comportamento orienta-se pelo uso padrão em [views.span]. Interpretação: O iterador retornado deverá representar a posição teórica imediatamente anterior ao primeiro elemento do intervalo, servindo assim como condição de parada em uma iteração reversa. Pergunta Q-83d4ed4a6e68fb19 (aberta)
Tratamento de erros e simultaneidade
A função é declarada como noexcept e explicitamente classificada como exception safe ([SWS_CORE_01979]). Uma chamada não dispara exceções, e não existem valores de retorno de erro nem registros de erro específicos via DET ou DEM. Como crend é definida como constexpr, a avaliação pode ocorrer diretamente em tempo de compilação. Como função-membro puramente const, ela não altera o estado da instância; acessos de leitura concorrentes à mesma instância de Span deverão, portanto, ser thread-safe sem sincronização. Pergunta Q-d90bd6b4f01c8af6 (aberta)
Interação
O comportamento de crend em ara::core::Span integra-se perfeitamente às interfaces de sequência e de contêiner de ara::core:
ara::core::Array ([SWS_CORE_01261]) e ara::core::StringView ([SWS_CORE_02127]) oferecem assinaturas idênticas, também declaradas como constexpr e noexcept.
ara::core::Vector ([SWS_CORE_01343]), ara::core::Map ([SWS_CORE_01451]) e ara::core::BasicString ([SWS_CORE_03050]) disponibilizam endpoints const_reverse_iterator análogos para contêineres dinâmicos.
Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR R25-11.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: daa0dd011e1eProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função-membro template first<Count>() da classe ara::core::Span gera de forma síncrona um novo subintervalo sobre os primeiros Count elementos do span atual e retorna-o como ara::core::Span<element_type, Count>[SWS_CORE_01961]. A função está declarada no arquivo de cabeçalho ara/core/span.h e especificada como constexpr bem como const noexcept[SWS_CORE_01961].
Em relação ao tratamento de erros, a função é classificada como segura para exceções (exception safe) e não lança exceções [SWS_CORE_01961]. Não estão definidos códigos de erro específicos, valores de retorno de erro ou mensagens para DET ou DEM. Existe, contudo, uma pré-condição vinculativa: o comportamento é indefinido se o parâmetro de template Count for maior que o tamanho em tempo de execução do span (Count > size()) [SWS_CORE_01961]. Os chamadores devem, portanto, assegurar que elementos suficientes estejam presentes.
Como o método é declarado como const e não modifica o objeto Span subjacente, um acesso de leitura concorrente entre múltiplas threads deve ser seguro para threads sem bloqueios adicionais (interpretação). Pergunta Q-215ae1cc00b7a590 (aberta) Se os elementos endereçados do span forem alterados por outras threads durante esse processo, o acesso deve ser sincronizado externamente.
Este texto foi criado por uma IA. Todas as informações técnicas baseiam-se exclusivamente na especificação do AUTOSAR R25-11.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 2bb3b51c18a9ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
A função-membro first é chamada sobre uma instância de ara::core::Span (disponibilizada através do cabeçalho ara/core/span.h) para gerar uma visão parcial dos primeiros elementos de uma sequência [SWS_CORE_01962]. Como parâmetro, é passado o número desejado de elementos count do tipo size_type[SWS_CORE_01962]. O valor de retorno é um Span<element_type, dynamic_extent>, que mapeia o respectivo prefixo [SWS_CORE_01962]. O comportamento orienta-se pela semântica de [views.span] do padrão C++ [SWS_CORE_01962]. Por meio da declaração como constexpr e noexcept, o método opera de forma síncrona, livre de exceções e já pode ser avaliado em tempo de compilação [SWS_CORE_01962].
Tratamento de erros e condições de contorno
A função é especificada como segura contra exceções (exception safe); códigos de erro ou mensagens de erro específicas (como DET ou DEM) não estão previstos [SWS_CORE_01962]. Para o chamador, aplica-se a seguinte condição de contorno vinculativa:
O comportamento da função é indefinido (undefined behavior) se count > size() for [SWS_CORE_01962].
O código do programa aplicativo deve, portanto, verificar de forma autônoma antes da chamada se a quantidade de elementos solicitada não excede o tamanho real do span.
Simultaneidade e restrições
Como função-membro constante (const), first não modifica o span chamado [SWS_CORE_01962]. Quanto à segurança para threads, a especificação é silente; acessos concorrentes de leitura ao mesmo span bem como aos dados da sequência subjacente devem, no entanto, ser não críticos (interpretação). Pergunta Q-8c3b51e54157dc12 (aberta) Se os elementos referenciados forem modificados simultaneamente por outras threads, faz-se necessária uma sincronização externa.
Este texto foi gerado por uma IA com base na especificação AUTOSAR R25-11.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 762c5c7c0428ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função-membro de template [SWS_CORE_01963] da classe ara::core::Span (cabeçalho #include "ara/core/span.h") fornece de forma síncrona uma visualização parcial dos últimos Count elementos da sequência subjacente. Ela segue a semântica de [views.span][SWS_CORE_01963]. Como o parâmetro Count é passado como argumento de template, o objeto Span resultante possui uma extensão estática já determinada em tempo de compilação.
A operação é declarada como constexpr, const e noexcept, e especificada como segura contra exceções (exception safe) [SWS_CORE_01963]. Não estão previstos retornos de erro por meio de códigos de erro ou notificações ao DET ou DEM para esta função. No entanto, ocorre comportamento indefinido se Count > size() for [SWS_CORE_01963]. Portanto, os chamadores devem assegurar, antes da instanciação ou execução, que o span atual compreenda pelo menos o número exigido de elementos.
Em relação à concorrência, a especificação não faz nenhuma afirmação explícita sobre thread safety; como método const livre de efeitos colaterais, o acesso simultâneo de leitura por múltiplas threads à mesma instância de Span não deve ser crítico, desde que os elementos referenciados na memória não sejam modificados em paralelo. Pergunta Q-120ccf3995c86b47 (aberta)
Na interação dentro do módulo, a função complementa a sobrecarga [SWS_CORE_01964]: enquanto a presente variante [SWS_CORE_01963] requer uma extensão fixa em tempo de compilação, [SWS_CORE_01964] permite a especificação de um número variável de elementos em tempo de execução e retorna um Span com extensão dinâmica (dynamic_extent).
Este texto foi gerado por um sistema de IA com base nos dados de especificação da AUTOSAR R25-11.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: f839f8230576ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
A função-membro last da classe ara::core::Span cria uma visualização parcial (subspan) que compreende os últimos count elementos da sequência atual [SWS_CORE_01964]. A chamada é feita de forma síncrona e retorna um Span<element_type, dynamic_extent>[SWS_CORE_01964]. Como a função está declarada como constexpr e noexcept, ela também pode ser avaliada em tempo de compilação e garante total segurança contra exceções (exception safe) [SWS_CORE_01964].
Tratamento de erros e condições de contorno
A função não lança exceções. Ocorre uma chamada errónea se o argumento count exceder o número efetivo de elementos presentes (count > size()); neste caso, o comportamento é indefinido [SWS_CORE_01964]. Por conseguinte, antes de passar valores dinâmicos, os chamadores devem certificar-se de que o número de elementos solicitado se encontra no intervalo válido.
Concorrência e interação
Como last representa uma operação de leitura sem estado na instância de span, chamadas simultâneas através do mesmo Span não deverão ser críticas, desde que os elementos da sequência subjacentes não sejam modificados. Ao contrário da variante de template last<Count>()[SWS_CORE_01963], que fixa o tamanho estaticamente, esta sobrecarga determina o comprimento em tempo de execução. Sequências recém-criadas, por exemplo através de MakeSpan[SWS_CORE_01991], podem assim ser flexivelmente reduzidas ao seu sufixo. Pergunta Q-ec2beaa99d9627c0 (aberta)
Esta nota de utilização foi criada automaticamente. Todas as informações baseiam-se na especificação da AUTOSAR Adaptive Core R25-11.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 3b4cbcd12a0eProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função-membro size_bytes da classe ara::core::Span retorna o tamanho total da área de memória referenciada em bytes [SWS_CORE_01968]. A semântica corresponde à definição no padrão C++ de acordo com [views.span][SWS_CORE_01968].
usar
A função é chamada de forma síncrona em uma instância existente de ara::core::Span e requer a inclusão do cabeçalho ara/core/span.h[SWS_CORE_01968]:
Contexto de chamada e parâmetros: o método não possui parâmetros e está declarado como const, portanto não altera o estado do span [SWS_CORE_01968]. Devido à designação como constexpr, o valor já pode ser avaliado em tempo de compilação, desde que o contexto subjacente o permita [SWS_CORE_01968].
Valor de retorno: retorna um valor do tipo size_type, que representa o tamanho em bytes da memória representada [SWS_CORE_01968].
Tratamento de erros e segurança contra exceções
A função é declarada como noexcept e especifica o nível de garantia exception safe[SWS_CORE_01968]. Não ocorrem exceções C++ e não são retornados códigos de erro [SWS_CORE_01968].
Simultaneidade e restrições
Como size_bytes é uma operação puramente de leitura (const) sem efeitos colaterais, a chamada concorrente na mesma instância a partir de múltiplas threads não é crítica, desde que o objeto Span referenciado não seja modificado simultaneamente (interpretação: thread safety padrão para métodos const) [SWS_CORE_01968]. Pergunta Q-ea768d4f6fa1d12f (aberta)
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR Adaptive R25-11.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: dca812068dbfProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função-membro subspan da classe ara::core::Span cria uma visualização parcial sobre um span existente ([SWS_CORE_01965]). Por meio dos parâmetros de template Offset e Count, a posição inicial e o número de elementos são definidos estaticamente em tempo de compilação; para Count, o valor padrão é dynamic_extent. A chamada ocorre de forma síncrona, é declarada como constexpr e noexcept, e é considerada segura contra exceções ([SWS_CORE_01965]).
Em relação ao comportamento, a especificação faz referência à construção padrão do C++ [views.span] ([SWS_CORE_01965]). Diferentemente da função sobrecarregada de tempo de execução [SWS_CORE_01966], na qual limites inválidos levam explicitamente a comportamento indefinido, a verificação aqui ocorre prioritariamente durante a compilação. Interpretação: com um número de elementos estaticamente conhecido, uma violação dos limites de Offset ou Count provavelmente resultaria em um erro de compilação. Pergunta Q-c1b2dd93177fb266 (aberta)
A função está disponível por meio do cabeçalho #include "ara/core/span.h" ([SWS_CORE_01965]). Ela complementa a sobrecarga correspondente [SWS_CORE_01966] para casos em que os subintervalos já estão fixados em tempo de compilação. Como subspan é uma função-membro constante, acessos simultâneos de leitura ao mesmo objeto de origem não são críticos, desde que o elemento de memória referenciado não seja modificado em paralelo.
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR Adaptive R25-11.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a68a8b4ea86aProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
A função-membro subspan de ara::core::Span ([SWS_CORE_01966]) cria uma visualização parcial (subspan) dos dados subjacentes. Ela é incluída através do cabeçalho ara/core/span.h. Como parâmetros, aceita um deslocamento (offset) e, opcionalmente, o número de elementos (count), cujo valor padrão é dynamic_extent. Quando count == dynamic_extent é passado, a visualização parcial gerada provavelmente abrange todos os elementos restantes a partir do deslocamento especificado. A função é declarada como constexpr e noexcept, e é considerada com segurança contra exceções (exception safe) de acordo com a especificação. Pergunta Q-f300852e8a1a87c8 (aberta)
Tratamento de erros e condições de contorno
A função não sinaliza erros por meio de códigos de erro nem por exceções do C++. Em vez disso, a violação das pré-condições definidas leva diretamente a comportamento indefinido ([SWS_CORE_01966]). Uma chamada só é definida se a seguinte condição for atendida:
Os chamadores devem verificar independentemente esses limites de intervalo antes da chamada para excluir comportamento indefinido em tempo de execução.
Interação
Ao contrário da variante de template [SWS_CORE_01965], que já vincula o deslocamento e a quantidade de elementos em tempo de compilação por meio de parâmetros de template, [SWS_CORE_01966] permite a passagem dinâmica de valores de tempo de execução. Como tipo de retorno, fornece sempre uma instância de Span<element_type, dynamic_extent>.
Este texto foi gerado por uma IA e serve como guia de orientação com base na especificação AUTOSAR.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão