Управляет полиморфным выделением памяти для объектов и контейнеров через заменяемые ресурсы памяти.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4f3088ca1f09ПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Управляет полиморфным выделением памяти для объектов и контейнеров через заменяемые ресурсы памяти.
Шаблонный класс инкапсулирует динамическое выделение памяти на основе ресурсов памяти для адаптивных приложений и контейнеров в виде полностью свободной от исключений реализации полиморфных аллокаторов [SWS_CORE_06541]. Для гибкого управления жизненным циклом объектов экземпляр делегирует все запросы памяти заменяемому ресурсу памяти, при этом неудачные выделения памяти детерминированно возвращают нулевые указатели вместо исключений C++ [SWS_CORE_06547]. В качестве существенного функционального граничного условия регулярное присваивание копированием явно запрещено, тогда как ошибочные операции освобождения во время работы всегда молчаливо игнорируются.
Контекст
Шаблонный класс ara::core::PolymorphicAllocator реализует в AUTOSAR Adaptive интерфейс для полиморфного выделения памяти с сохранением состояния согласно стандартному шаблону C++ и определяет базовый тип элементов value_type[SWS_CORE_06572]. Он выступает адаптером между вызывающими компонентами — такими как контейнеры или структуры приложений — и конкретным ресурсом памяти. С помощью метода resource() можно в любое время запросить указатель на используемый MemoryResource[SWS_CORE_06557]. Благодаря этой инкапсуляции запрос памяти семантически отделен от конкретной реализации управления памятью.
Контекстная диаграмма: интеграция аллокатора между вызывающей стороной и ресурсом памяти. Источники: [SWS_CORE_06557], [SWS_CORE_06572].
Жизненный цикл
Экземпляры аллокатора конструируются либо по умолчанию [SWS_CORE_06541], либо с указателем на конкретный MemoryResource[SWS_CORE_06542]. Поскольку аллокатор лишь ссылается на ресурс памяти, ответственность за его время жизни, вероятно, лежит на вызывающей стороне. Вопрос Q-adde89798a03cf8b (открытый) Наряду с регулярным конструктором копирования [SWS_CORE_06543] конструктор преобразования допускает инициализацию из аллокаторов для других типов элементов U[SWS_CORE_06544].
Что касается передачи владения, регулярный оператор присваивания копированием удалён (=delete) [SWS_CORE_06545]. Напротив, AUTOSAR явно определяет конструктор перемещения [SWS_CORE_06546], а также стандартный оператор присваивания перемещением [SWS_CORE_00066]. При операциях копирования контейнеров метод select_on_container_copy_construction() создаёт соответствующий экземпляр аллокатора [SWS_CORE_06573].
В отношении параллелизма конструкторы по умолчанию и преобразования, а также запрос ресурса памяти специфицированы как потокобезопасные ([SWS_CORE_06541], [SWS_CORE_06542], [SWS_CORE_06544], [SWS_CORE_06557]). Напротив, операции перемещения ([SWS_CORE_06546]), выбор копии ([SWS_CORE_06573]), а также все операции выделения, конструирования и освобождения памяти объявлены как непотокобезопасные.
Путь использования
Регулярный процесс включает выделение памяти, конструирование объектов, а также их последующее уничтожение и освобождение:
Выделение памяти: сырая память для n объектов типа Tp запрашивается с помощью allocate()[SWS_CORE_06547]. В качестве альтернативы доступны allocate_bytes() для побайтового выделения с выравниванием [SWS_CORE_06549], а также шаблон allocate_object() для типизированных выделений [SWS_CORE_06551].
Инициализация объектов: метод construct() создаёт объекты в предварительно выделенной области памяти [SWS_CORE_06555]. В качестве комбинированной операции new_object() предоставляет выделение памяти и конструирование на месте в одном вызове [SWS_CORE_06553].
Класс отличается от стандарта ISO-C++ существенными механизмами обработки ошибок для соответствия строгим требованиям к системам без исключений:
Отсутствие исключений при выделении памяти: все методы выделения памяти (allocate()[SWS_CORE_06547], allocate_bytes()[SWS_CORE_06549] и allocate_object()[SWS_CORE_06551]) являются noexcept. В случае сбоя резервирования памяти вместо исключения возвращается nullptr. Вызывающей стороне, вероятно, обязательно требуется проверять указатель перед дальнейшим использованием. Вопрос Q-a12cbeeba5edd1d0 (открытый)
Условная безопасность к исключениям: подпрограммы конструирования и уничтожения (construct()[SWS_CORE_06555], destroy()[SWS_CORE_06556], new_object()[SWS_CORE_06553] и delete_object()[SWS_CORE_06554]) условно являются noexcept в зависимости от std::is_nothrow_constructible или std::is_nothrow_destructible затронутых типов. При сбое new_object() также возвращается nullptr[SWS_CORE_06553].
Подавление ошибок при освобождении памяти: в случае сбоя операций освобождения возникшие ошибки в deallocate()[SWS_CORE_06548], deallocate_bytes()[SWS_CORE_06550], deallocate_object()[SWS_CORE_06552] и delete_object()[SWS_CORE_06554] без исключения молчаливо игнорируются.
Настоящее руководство основано на спецификации ara::core::PolymorphicAllocator из AUTOSAR R25-11 и создано автоматически.
except for the following deviations: 1. The function is noexcept 2. If unsuccessful: nullptr is returned, instead of raising any Exception ≙ [mem.poly.allocator.class]
except for the following deviations: 1. The function is noexcept 2. If unsuccessful: the returned pointer shall be nullptr ≙ [mem.poly.allocator.class]
except for the following deviations: 1. The function is noexcept 2. If unsuccessful: the returned pointer shall be nullptr ≙ [mem.poly.allocator.class]
template <class T> [[nodiscard]] T * allocate_object (std::size_t n=1) noexcept;
except for the following deviations: 1. Function is conditionally noexcept 2. If unsuccessful: errors will be silently ignored ≙ [mem.poly.allocator.class]
except for the following deviations: 1. Function is conditionally noexcept 2. If unsuccessful: nullptr is returned, instead of raising any Exception ≙ [mem.poly.allocator.class]
As per corresponding usage in [mem.poly.allocator.class] except for the following deviations: 1. The function is noexcept 2. If unsuccessful: nullptr is returned, instead of raising any Exception
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e24ff27c5b25ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Функция-член allocate класса ara::core::PolymorphicAllocator служит для синхронного запроса неинициализированной памяти для n объектов типа Tp[SWS_CORE_06547]. Она ориентируется на функциональность [mem.poly.allocator.class], однако целенаправленно отклоняется от стандарта C++ за счёт объявления как noexcept и атрибута [[nodiscard]][SWS_CORE_06547].
В случае ошибки allocate не генерирует исключение, как std::bad_alloc, а возвращает вместо этого nullptr[SWS_CORE_06547]. Из-за [[nodiscard]] вызывающая сторона должна явно принимать возвращаемое значение и проверять его на nullptr перед использованием области памяти [SWS_CORE_06547]. В отношении параллелизма функция классифицирована как Exception-Safe, однако считается непотокобезопасной (not thread-safe) [SWS_CORE_06547]. Интерпретация: синхронный вызов через один и тот же аллокатор из разных потоков, вероятно, потребует внешней защиты со стороны вызывающего кода. Вопрос Q-b00116faadf930fe (открытый)
Отказоустойчивое поведение без исключений напрямую соотносится с интерфейсом ara::core::MemoryResource::allocate[SWS_CORE_06503], который также определён как noexcept и в случае ошибки возвращает nullptr. Предопределённые экземпляры, такие как NullMemoryResource[SWS_CORE_06563], также используют этот принцип и при вызовах выделения памяти последовательно возвращают nullptr. На более высоком уровне этот механизм взаимодействует с такими контейнерами, как ara::core::Vector[SWS_CORE_01315], операторы присваивания которых согласованы с подобными свойствами выделения памяти.
Этот текст был сгенерирован автоматически. Определяющей является спецификация AUTOSAR.
As per corresponding usage in [mem.poly.allocator.class] except for the following deviations: 1. The function is noexcept 2. If unsuccessful: the returned pointer shall be nullptr
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: ed713f104c1dПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Функция-член allocate_bytes класса ara::core::PolymorphicAllocator резервирует непрерывную область памяти объемом nbytes с заданным выравниванием alignment[SWS_CORE_06549]. Значение по умолчанию для выравнивания соответствует alignof(std::max_align_t)[SWS_CORE_06549]. Функция подключается через заголовочный файл ara/core/memory_resource.h и выполняется синхронно [SWS_CORE_06549].
Обработка ошибок и семантика
В отличие от стандартного поведения согласно [mem.poly.allocator.class], реализация имеет два отличия [SWS_CORE_06549]:
Функция объявлена как noexcept и не генерирует исключений [SWS_CORE_06549].
Если выделение памяти завершается неудачей, функция возвращает nullptr вместо генерации исключения [SWS_CORE_06549].
Из-за атрибута [[nodiscard]] возвращаемое значение должно проверяться вызывающей стороной, в частности путем проверки на nullptr перед обращением к области памяти [SWS_CORE_06549].
template <class T> [[nodiscard]] T * allocate_object (std::size_t n=1) noexcept;
As per corresponding usage in [mem.poly.allocator.class] except for the following deviations: 1. The function is noexcept 2. If unsuccessful: the returned pointer shall be nullptr
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c04a4d5d02ffПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Шаблонная функция-член allocate_object является частью класса ara::core::PolymorphicAllocator и предоставляется через заголовочный файл #include "ara/core/memory_resource.h"[SWS_CORE_06551]. Она синхронно выделяет память для n объектов типа T, при этом параметр n по умолчанию инициализирован значением 1[SWS_CORE_06551]. Атрибут компилятора [[nodiscard]] обязывает вызывающие стороны не игнорировать возвращаемый типизированный указатель T*.
Обработка ошибок
Спецификация определяет два явных отличия от стандарта [mem.poly.allocator.class][SWS_CORE_06551]:
Никаких исключений: функция объявлена как noexcept и специфицирована как безопасная относительно исключений (exception safe) [SWS_CORE_06551].
Нулевой указатель в случае ошибки: если выделение памяти завершается неудачей, исключение не генерируется, а обязательно возвращается nullptr[SWS_CORE_06551].
Поэтому вызывающая сторона должна проверить полученный указатель на nullptr непосредственно перед дальнейшим использованием.
Параллелизм и ограничения
Операция специфицирована как непотокобезопасная (not thread-safe) [SWS_CORE_06551]. При параллельном использовании одного и того же экземпляра аллокатора, вероятно, потребуется внешняя синхронизация для предотвращения состояний гонки данных. Кроме того, функция резервирует только память (интерпретация: конструирование объектов в зарезервированной памяти возлагается на последующие механизмы). Вопрос Q-c41df2caaeb4c503 (открытый)
Этот текст был создан ИИ и основан на спецификации AUTOSAR R25-11.
As per corresponding usage in [mem.poly.allocator.class] except for the following deviations: 1. Function is conditionally noexcept
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: b824902bd6ddПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Шаблонная функция construct класса ara::core::PolymorphicAllocator ([SWS_CORE_06555]) служит для синхронного создания объекта типа T по переданному адресу памяти p с прямой передачей аргументов args.... Она определена в заголовочном файле ara/core/memory_resource.h и в основном следует требованиям из [mem.poly.allocator.class].
Явное отличие от стандарта C++ касается обработки исключений: согласно [SWS_CORE_06555] функция условно объявлена как noexcept, в зависимости от того, выполняется ли std::is_nothrow_constructible<T, Args...>::value. Спецификация тем самым присваивает ей признак conditionally exception safe. Интерпретация: если T не может быть сконструирован без исключений, любые исключения конструктора, вероятно, будут беспрепятственно передаваться вызывающей стороне, поскольку внутренние коды ошибок или специальные механизмы перехвата не определены. Вопрос Q-ad77510f396e59ae (открытый)
Что касается параллелизма и граничных условий, construct специфицирована как непотокобезопасная (not thread-safe) ([SWS_CORE_06555]). При параллельном доступе к одному и тому же экземпляру аллокатора или к одной и той же области памяти внешняя синхронизация в контексте вызова строго обязательна.
Архитектурный шаблон объявления noexcept в зависимости от типа соответствует соглашениям в ara::core, которые используются, помимо прочего, и в конструкторах ara::core::Result ([SWS_CORE_00725], [SWS_CORE_00726]).
Этот пункт использования был создан автоматически и опирается исключительно на спецификацию AUTOSAR Adaptive Release R25-11.
As per corresponding usage in [mem.poly.allocator.class] except for the following deviations: 1. The function is noexcept 2. If unsuccessful: errors will be silently ignored
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 2c2725501203Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Функция-член deallocate класса ara::core::PolymorphicAllocator освобождает ранее выделенную память для n объектов типа Tp, начиная с адреса p[SWS_CORE_06548]. Объявление находится в заголовочном файле ara/core/memory_resource.h[SWS_CORE_06548]. Функция в целом следует семантике стандартного аллокатора C++ согласно [mem.poly.allocator.class], однако имеет два специфических отличия [SWS_CORE_06548].
Обработка ошибок и безопасность исключений
В качестве существенного отличия операция объявлена как noexcept и специфицирована как исключебно-безопасная (exception safe) [SWS_CORE_06548]. Если освобождение памяти завершается неудачей, возникающие ошибки молча игнорируются (silently ignored), так что исключения не генерируются и явные коды ошибок не возвращаются [SWS_CORE_06548].
Параллелизм и взаимодействие
Что касается контекста вызова, deallocate классифицирована как непотокобезопасная (not thread-safe) [SWS_CORE_06548]. В концепции управления памятью эта функция соответствует методу deallocate базового класса ara::core::MemoryResource[SWS_CORE_06504], для которого действуют те же отличия относительно noexcept и молчаливой обработки ошибок.
Это указание по использованию было создано автоматически и основано исключительно на требованиях спецификации AUTOSAR Adaptive.
As per corresponding usage in [mem.poly.allocator.class] except for the following deviations: 1. The function is noexcept 2. If unsuccessful: errors will be silently ignored
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: faf22ebd97f2ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Функция deallocate_bytes класса ara::core::PolymorphicAllocator служит для освобождения ранее выделенной области памяти согласно [SWS_CORE_06550]. Она предоставляется через заголовочный файл ara/core/memory_resource.h и в целом ориентируется на семантику из [mem.poly.allocator.class].
Вызов выполняется синхронно и ожидает следующие параметры согласно [SWS_CORE_06550]:
p: указатель (void*) на освобождаемую область памяти.
nbytes: размер освобождаемой памяти в байтах (std::size_t).
alignment: желаемое выравнивание (значение по умолчанию alignof(std::max_align_t)).
В отношении поведения при ошибках реализация имеет специфические отличия от стандарта: функция объявлена как noexcept и считается безопасной относительно исключений (exception safe). Если освобождение завершается неудачей, возникающие ошибки молча игнорируются (silently ignored) согласно [SWS_CORE_06550]. Исключения не генерируются, и возвращаемые значения не предоставляются.
Касательно параллелизма и ограничений функция явно специфицирована как непотокобезопасная (not thread-safe) [SWS_CORE_06550]. Конкурентный доступ к одному и тому же экземпляру аллокатора без внешней синхронизации, вероятно, приведет к неопределенному поведению. Вопрос Q-33c80e3bb50ed64f (открытый)
Этот пункт использования был создан автоматически на основе релиза R25-11.
As per corresponding usage in [mem.poly.allocator.class] except for the following deviations: 1. Function is nullptr 2. If unsuccessful: errors will be silently ignored
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: d1e41bdb2142ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Шаблонная функция deallocate_object класса ara::core::PolymorphicAllocator служит для освобождения ранее зарезервированной памяти объектов [SWS_CORE_06552]. Она ориентируется на соответствующее использование стандарта C++ согласно [mem.poly.allocator.class], однако имеет специфические отличия [SWS_CORE_06552].
В отношении параметров и контекста вызова действуют следующие свойства [SWS_CORE_06552]:
Заголовочный файл: функция доступна через #include "ara/core/memory_resource.h"[SWS_CORE_06552].
Возвращаемое значение: операция не возвращает значения (void) [SWS_CORE_06552].
Поведение при нулевом указателе: в качестве явного отличия специфицировано, что функция срабатывает при передаче nullptr или поддерживает нулевые указатели («Function is nullptr») [SWS_CORE_06552].
Что касается обработки ошибок, функция объявлена как noexcept и считается безопасной относительно исключений (exception safe) [SWS_CORE_06552]. Если деаллокация завершается неудачей, возникающие ошибки молча игнорируются («errors will be silently ignored»), поэтому исключения не распространяются наружу [SWS_CORE_06552].
В качестве существенного ограничения deallocate_object классифицируется как непотокобезопасная (not thread-safe) [SWS_CORE_06552]. При параллельном доступе к одному и тому же экземпляру аллокатора из нескольких потоков вызовы должны быть защищены внешними механизмами синхронизации.
Этот текст был создан ИИ и основан исключительно на спецификациях релиза R25-11.
As per corresponding usage in [mem.poly.allocator.class] except for the following deviations: 1. Function is conditionally noexcept 2. If unsuccessful: errors will be silently ignored
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c42857d5d063ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Функция-член delete_object класса ara::core::PolymorphicAllocator служит согласно [SWS_CORE_06554] для уничтожения и освобождения памяти объекта типа T, на который указывает переданный указатель p. Функция предоставляется через заголовочный файл #include "ara/core/memory_resource.h" и следует поведению из [mem.poly.allocator.class] со специфическими отличиями.
В отношении контекста вызова и семантики действуют следующие свойства:
Возвращаемое значение и исключения: функция не имеет возвращаемого значения (void). Она является условно не генерирующей исключений (conditionally noexcept) со спецификацией noexcept(std::is_nothrow_destructible<T>::value), то есть не выбрасывает исключений, если деструктор T объявлен как невыбрасывающий [SWS_CORE_06554].
Обработка ошибок: если операция завершается неудачей, возникшие ошибки молча игнорируются (errors will be silently ignored) [SWS_CORE_06554]. Интерпретация: таким образом, вызывающие стороны в случае ошибки не получают ни сообщения об ошибке, ни кода ошибки, ни исключения. Вопрос Q-9393b0f68a055e4b (открытый)
Потокобезопасность: операция специфицирована как непотокобезопасная (not thread-safe) [SWS_CORE_06554]. При конкурентном использовании одного и того же аллокатора в нескольких потоках синхронизация возлагается на вызывающую сторону.
Этот текст был сгенерирован ИИ на основе спецификации R25-11.
As per corresponding usage in [mem.poly.allocator.class] except for the following deviations: 1. Function is conditionally noexcept
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: d8b5334c8292ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Шаблонная функция-член destroy класса ara::core::PolymorphicAllocator ([SWS_CORE_06556]) служит для уничтожения объекта типа T, на который указывает указатель p. Функция объявлена в заголовочном файле ara/core/memory_resource.h и в целом следует стандартизированному поведению из [mem.poly.allocator.class] ([SWS_CORE_06556]). Вызов метода не возвращает значения и выполняется синхронно в контексте вызывающего потока. Интерпретация: при этом предполагается, что p указывает на действительный, ранее созданный объект.
Вопрос Q-a4faf7034eb683dd (открытый)
Обработка ошибок и безопасность исключений
Что касается обработки ошибок, функция классифицируется как условно безопасная относительно исключений (conditionally exception safe) ([SWS_CORE_06556]). В качестве специфического отличия от стандартного требования [mem.poly.allocator.class]destroy условно объявлена с noexcept(std::is_nothrow_destructible<T>::value) ([SWS_CORE_06556]). Если деструктор переданного типа T не генерирует исключений, безисключительность распространяется на весь вызов; в противном случае исключения, возникающие в деструкторе, могут распространяться вовне.
Параллелизм и ограничения
Относительно поведения при конкурентности destroy специфицирована как непотокобезопасная (not thread-safe) ([SWS_CORE_06556]). Если несколько потоков одновременно обращаются к одному и тому же экземпляру ara::core::PolymorphicAllocator или к уничтожаемому объекту, необходимо настроить подходящие внешние механизмы синхронизации.
Этот пункт использования был автоматически сгенерирован на основе спецификации AUTOSAR Adaptive Release R25-11.
As per corresponding usage in [mem.poly.allocator.class] except for the following deviations: 1. Function is conditionally noexcept 2. If unsuccessful: nullptr is returned, instead of raising any Exception
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: d4720bb5fd75ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Шаблонная функция-член new_object класса ara::core::PolymorphicAllocator (определенная в #include "ara/core/memory_resource.h") синхронно выделяет память и конструирует объект типа T с переданными аргументами конструктора ctor_args[SWS_CORE_06553].
Использование подчиняется следующим правилам и отличиям от стандарта [mem.poly.allocator.class][SWS_CORE_06553]:
Вызов и возвращаемое значение: при успешном создании объекта возвращается типизированный указатель T* на новый экземпляр. Атрибут [[nodiscard]] обязывает вызывающие стороны обрабатывать возвращаемое значение.
Обработка ошибок: в случае неудачи, в отличие от [mem.poly.allocator.class], исключение не генерируется, а возвращается nullptr. Поэтому вызывающая сторона перед обращением обязательно должна проверить результирующий указатель на nullptr.
Безопасность исключений: функция специфицирована как условно безопасная относительно исключений (conditionally exception safe). Она является noexcept тогда и только тогда, когда само создание объекта гарантированно не генерирует исключений (noexcept(std::is_nothrow_constructible<T, CtorArgs...>::value)).
Параллелизм: функция объявлена как непотокобезопасная (not thread-safe). Интерпретация: при одновременном доступе к одному и тому же экземпляру ara::core::PolymorphicAllocator вызывающая сторона, вероятно, отвечает за надлежащую внешнюю синхронизацию. Вопрос Q-3d0ecfe34187c91e (открытый)
Данное указание по использованию сгенерировано автоматически на основе AUTOSAR R25-11.
As per corresponding usage in [mem.poly.allocator.class]
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 90f4d7f53a57ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод resource является константной функцией-членом класса ara::core::PolymorphicAllocator из заголовочного файла #include "ara/core/memory_resource.h"[SWS_CORE_06557]. Согласно ссылке на спецификацию [mem.poly.allocator.class], он служит для синхронного получения назначенного ресурса памяти [SWS_CORE_06557].
Использование и сигнатура
Сигнатура функции имеет вид MemoryResource * resource () const noexcept;[SWS_CORE_06557]. Вызов выполняется без параметров и синхронно на экземпляре ara::core::PolymorphicAllocator. В качестве возвращаемого значения функция возвращает указатель типа MemoryResource*[SWS_CORE_06557]. Интерпретация: возвращаемый указатель, вероятно, указывает непосредственно на конкретный ресурс памяти, который аллокатор использует для операций с памятью. Вопрос Q-392683a38a4e490b (открытый)
Обработка ошибок и параллелизм
Безопасность исключений: функция объявлена как noexcept и классифицирована как exception safe[SWS_CORE_06557]. Она не генерирует исключений, и специфические коды ошибок не определены.
Потокобезопасность: спецификация явно определяет метод как thread-safe[SWS_CORE_06557]. Благодаря квалификатору const одновременный доступ по чтению из нескольких потоков безопасен.
Взаимодействие
В модуле coreresource предоставляет интерфейс для запроса инкапсулированного ara::core::PolymorphicAllocatorMemoryResource и вызова его операций [SWS_CORE_06557].
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR Adaptive R25-11.
As per corresponding usage in [mem.poly.allocator.class] except for the following deviations: 1. The function is noexcept
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c103d893236cПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Функция-член select_on_container_copy_construction принадлежит области видимости класса ara::core::PolymorphicAllocator и объявляется через заголовочный файл #include "ara/core/memory_resource.h" ([SWS_CORE_06573]). Она вызывается синхронно, чтобы при конструкторе копирования контейнера создать новый экземпляр PolymorphicAllocator ([SWS_CORE_06573]). При этом функциональное поведение соответствует требованию [mem.poly.allocator.class] ([SWS_CORE_06573]). Интерпретация: результирующий аллокатор, вероятно, конструируется по умолчанию и тем самым обращается к стандартному ресурсу памяти вместо обязательного копирования ресурса памяти исходного контейнера. Вопрос Q-134ed967dc22e133 (открытый)
Обработка ошибок и безопасность исключений
Ключевое отличие от общей спецификации C++ заключается в том, что функция в AUTOSAR явно объявлена как noexcept ([SWS_CORE_06573]). Выполнение определено как безопасное относительно исключений (exception safe) ([SWS_CORE_06573]). Специфические коды ошибок, возвращаемые значения для индикации ошибок или сообщения в DET или DEM для этого интерфейса не предусмотрены, так как вызов гарантированно завершается безошибочно.
Параллелизм и ограничения
Согласно спецификации функция классифицирована как not thread-safe ([SWS_CORE_06573]). Это означает, что одновременные вызовы на одном и том же экземпляре PolymorphicAllocator из нескольких потоков без внешней синхронизации могут привести к состоянию гонки данных. Перед копированием контейнера в многопоточных средах доступ к объекту аллокатора должен быть защищен пользователем.
Этот пункт использования был создан автоматически на основе спецификации AUTOSAR для релиза R25-11.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал