DEENESPTFRRUARHIKOZHNL

모듈 ara::core — Adaptive Platform Core

Spezifikation: AUTOSAR_AP_SWS_Core.pdf (R25-11) · 1237 API-Records

모듈 가이드AI 생성

플랫폼 전반의 C++ 기본 타입, 결함 감내형 결과 타입 및 결정론적 메모리 풀을 제공합니다.
AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 54405fb1f5a0 출처 열린 질문 (2)
인과 앵커: R25-11 R25-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

플랫폼 전반의 C++ 기본 타입, 결함 감내형 결과 타입 및 결정론적 메모리 풀을 제공합니다.

모듈 core은 AUTOSAR Adaptive Platform을 위한 플랫폼 전반의 기본 타입, PMR 메모리 풀, 비동기 동기화 프리미티브 Future 및 Promise를 제공합니다(SWArchitecture 60쪽, [SWS_CORE_00326]). 엄격한 안전 및 실시간 요구사항을 충족하기 위해 합타입(sum type) Result<T, E>는 기존의 예외를 결정론적인 반환값으로 대체합니다([SWS_CORE_00751]). 복구 불가능한 시스템 오류 발생 시 fail-fast 함수 Abort()은 프로세스의 즉각적이고 제어된 중단을 보장합니다([SWS_CORE_00052]).

모듈 core은 AUTOSAR Adaptive Platform의 기본 기능 클러스터 역할을 하며 모든 플랫폼 서비스 및 애플리케이션을 위한 일관된 데이터 구조, 비동기 통신 프리미티브 및 메모리 관리 메커니즘을 제공합니다(SWArchitecture 60쪽). POSIX 운영체제 환경에서 결정론적 실행과 기능 안전을 보장하기 위해 core는 기존 C++ 예외를 타입 안전한 결과 타입 Result<T, E>으로 대체하고 다형성 할당자([SWS_CORE_00041], [SWS_CORE_00751])를 통해 동적 메모리 할당을 제어합니다.

CoreArch cluster_core ara::core app Adaptive Application fc Funktionale Cluster (ara::com, ara::ts, etc.) app->fc lifecycle Lebenszyklus & Prozessabbruch (Initialize, Deinitialize, Abort) app->lifecycle concurrency 비동기 제어 흐름 (Future, Promise, Executor) app->concurrency error_mgmt Deterministisches Fehlermanagement (Result, ErrorCode, ErrorDomain) app->error_mgmt memory Speicherverwaltung (PMR) (MemoryResource, PoolResources) app->memory types Container & Utility-Typen (Optional, Array, Vector, Map) app->types fc->concurrency fc->error_mgmt fc->memory fc->types posix Betriebssystem & POSIX-Laufzeitumgebung lifecycle->posix memory->posix

컨텍스트 다이어그램: Adaptive Platform 내 기능 클러스터 ara::core 및 해당 인터페이스 영역의 임베딩. 출처: SWArchitecture 60쪽, SWArchitecture 36쪽

동시 동기화를 위해 core은 Future과 Promise의 상호작용을 구현합니다([SWS_CORE_00326], [SWS_CORE_00344]). 생산자가 Promise를 통해 계산 상태 또는 오류를 제공하는 동안, Future은 소비자가 wait_for()을 통한 시간 모니터링 쿼리와 then()을 사용한 반응형 전달을 모두 수행할 수 있도록 허용합니다([SWS_CORE_00329], [SWS_CORE_00331], TimeSynchronization 90쪽).

ResultEval start Empfang von Result<T, E> check HasValue() / operator bool()을 통한 검사 start->check val_path 성공: Value() / operator*()를 통한 접근 check->val_path true err_path 오류 발생 시: Error()를 통한 접근 check->err_path false use_val Nutzlast T verarbeiten val_path->use_val check_throw Exception-Modus aktiviert? err_path->check_throw throw_exc ValueOrThrow()가 예외를 발생시킴 check_throw->throw_exc 예 handle_err Deterministische Fehlerbehandlung via ErrorCode check_throw->handle_err 아니요

활동 다이어그램: 오류가 없는 경우와 오류가 발생한 경우 Result 객체의 결정론적 평가 경로. 출처: [SWS_CORE_00751], [SWS_CORE_00755], [SWS_CORE_00757], [SWS_CORE_00766]

단편화를 방지하기 위해 이 모듈은 할당을 고정 크기 청크로 제한하는 SynchronizedPoolResource 및 UnsynchronizedPoolResource과 같은 풀 리소스를 제공합니다([SWS_CORE_00030], [SWS_CORE_00067], SWArchitecture 61쪽). 극복할 수 없는 오류 상태가 발생하면 플랫폼은 등록된 AbortHandler을 사전 실행한 후 Abort()를 통해 프로세스의 즉각적인 fail-fast 종료를 강제합니다([SWS_CORE_00051], [SWS_CORE_00052]).

ara::core의 시스템 역할 및 아키텍처 기반

모듈 core은 AUTOSAR Adaptive Platform의 기본 토대를 형성하며 모든 기능 클러스터 및 Adaptive Applications를 위한 기본 타입 정의, 메모리 관리 메커니즘 및 기본 인터페이스를 제공합니다(SWArchitecture 60쪽). 애플리케이션별 서비스와 달리 core는 프로세스 로컬로 설계되었으며, POSIX 운영체제 환경 내에서 이식 가능하고 결정론적이며 리소스 효율적인 C++ 소프트웨어를 구현하기 위한 필수 추상화를 정의합니다(SWArchitecture 36쪽).

아키텍처적으로 이 모듈은 하드웨어 종속적인 운영체제 기능과 Adaptive Platform(SWArchitecture 60쪽)의 상위 계층 간의 표준화된 인터페이스 역할을 합니다. 여기서 core은 동적 메모리 할당을 제어 가능하게 만들고 일반적인 제어 흐름에서 C++ 예외의 전면적인 사용을 배제함으로써 기능 안전(ASIL) 및 실시간성에 대한 핵심 요구사항을 다룹니다([SWS_CORE_00052], [SWS_CORE_00751]). 플랫폼 전반의 기본 타입을 제공함으로써 ara::com 또는 ara::ts와 같은 미들웨어 컴포넌트 간의 독자적인 고립 솔루션(silo solution)을 방지합니다(ARAComAPI 46쪽, TimeSynchronization 90쪽).

CoreArch cluster_core ara::core app Adaptive Application fc Funktionale Cluster (ara::com, ara::ts, etc.) app->fc lifecycle Lebenszyklus & Prozessabbruch (Initialize, Deinitialize, Abort) app->lifecycle concurrency 비동기 제어 흐름 (Future, Promise, Executor) app->concurrency error_mgmt Deterministisches Fehlermanagement (Result, ErrorCode, ErrorDomain) app->error_mgmt memory Speicherverwaltung (PMR) (MemoryResource, PoolResources) app->memory types Container & Utility-Typen (Optional, Array, Vector, Map) app->types fc->concurrency fc->error_mgmt fc->memory fc->types posix Betriebssystem & POSIX-Laufzeitumgebung lifecycle->posix memory->posix

컨텍스트 다이어그램: Adaptive Platform 내 기능 클러스터 ara::core 및 해당 인터페이스 영역의 임베딩. 출처: SWArchitecture 60쪽, SWArchitecture 36쪽

Future 및 Promise를 통한 비동기 제어 및 데이터 흐름

동시성 및 분리된 상호작용을 위해 ara::core은 Promise 및 Future를 통해 생산자-소비자 패턴을 구현합니다([SWS_CORE_00326], [SWS_CORE_00341]). Promise는 비동기 워커 또는 통신 스켈레톤이 결과나 오류를 저장하는 쓰기 인터페이스를 나타냅니다([SWS_CORE_00345], [SWS_CORE_00353]). 소비 측 대응부는 Future로 구성되며, 공유 상태(Shared State)를 모니터링하고 반환값에 대한 타입 안전한 접근을 캡슐화합니다(ARAComAPI 46쪽, ARAComAPI 59쪽).

클라이언트 스레드의 블로킹을 방지하기 위해 Future은 동기식 블로킹 조회 함수 get()([SWS_CORE_00326]) 외에도 시간 제한 대기 작업을 제공합니다. wait_for() 및 wait_until()는 FutureStatus 타입의 상태 지시자를 반환합니다([SWS_CORE_00329], [SWS_CORE_00330], ARAComAPI 1쪽). then() 메서드를 통해 콜백을 등록할 수 있으며, 이 콜백은 결과가 도착할 때 자동으로 실행됩니다. 이때 선택적으로 사용자 정의 Executor를 통합하여 특정 스레드 풀로 실행을 제어할 수 있습니다([SWS_CORE_00024], [SWS_CORE_00331], [SWS_CORE_00337]). 배타적 소유권을 보장하기 위해 Future 및 Promise에 대한 복사 작업은 명시적으로 금지됩니다([SWS_CORE_00334], [SWS_CORE_00350]).

Promise 및 Future를 통한 비동기 통신Consumer (App)FuturePromiseProducer (Worker)Erzeuge Promise()get_future()Erzeuge Future<T, E>Consumer에 Future 전달Use Case: 대기 및 쿼리 단계wait_for(timeoutDuration)FutureStatus::kTimeoutUse Case: Ergebnisbereitstellungset_value(value) 또는 SetError(error)상태 전환: 공유 상태 충족됨get() 또는 GetResult()값 또는 Result<T, E> 반환

시퀀스 다이어그램: Promise 및 Future를 통한 워커와 애플리케이션 간의 비동기 값 및 오류 전송. 출처: [SWS_CORE_00326], [SWS_CORE_00329], [SWS_CORE_00344], [SWS_CORE_00345], TimeSynchronization 90쪽

결정론적 오류 관리: Result, ErrorCode 및 ErrorDomain

Adaptive Platform의 안전 중심 프로그래밍에서 핵심적인 측면은 일반 작동 중에 제어되지 않은 예외가 발생하는 것을 엄격히 방지하는 것입니다. ara::core::Result<T, E>은 T 타입의 성공 페이로드 값 또는 E 타입의 오류 객체를 포함하는 타입 안전한 합타입(sum type) 캡슐화 역할을 합니다([SWS_CORE_00721], [SWS_CORE_00723], [SWS_CORE_00751]). 참조 타입 Result<T&, E>뿐만 아니라 반환값이 없는 연산 Result<void, E>에 대한 특수화도 존재합니다([SWS_CORE_00821], [SWS_CORE_00908]).

포함된 상태는 HasValue() 또는 명시적 변환 연산자 operator bool()을 통해 검사됩니다([SWS_CORE_00751], [SWS_CORE_00752]). 페이로드 데이터에 대한 접근은 Value() 또는 operator*()를 통해 수행되는 반면, 오류는 Error()을 통해 조회됩니다([SWS_CORE_00755], [SWS_CORE_00757]). 함수형 추가 처리 및 오류 전파를 위해 Result은 Bind(), ValueOr() 및 Resolve()와 같은 메서드를 제공합니다([SWS_CORE_00761], [SWS_CORE_00768]). 오류는 숫자 오류 코드 CodeType을 고유한 도메인 식별자 ErrorDomain 및 선택적 진단 추가 데이터 SupportDataType과 연결하는 ErrorCode를 통해 모델링됩니다([SWS_CORE_00121], [SWS_CORE_00122], [SWS_CORE_00512]). ValueOrThrow() 메서드는 예외 처리가 활성화된 환경을 위한 브리지로 존재하지만, 오류 발생 시 도메인과 연결된 예외를 발생시킵니다([SWS_CORE_00154], [SWS_CORE_00766]).

ResultEval start Empfang von Result<T, E> check HasValue() / operator bool()을 통한 검사 start->check val_path 성공: Value() / operator*()를 통한 접근 check->val_path true err_path 오류 발생 시: Error()를 통한 접근 check->err_path false use_val Nutzlast T verarbeiten val_path->use_val check_throw Exception-Modus aktiviert? err_path->check_throw throw_exc ValueOrThrow()가 예외를 발생시킴 check_throw->throw_exc 예 handle_err Deterministische Fehlerbehandlung via ErrorCode check_throw->handle_err 아니요

활동 다이어그램: 오류가 없는 경우와 오류가 발생한 경우 Result 객체의 결정론적 평가 경로. 출처: [SWS_CORE_00751], [SWS_CORE_00755], [SWS_CORE_00757], [SWS_CORE_00766]

풀 리소스를 통한 다형성 메모리 관리

표준 힙에서의 동적 할당은 비결정론 및 메모리 단편화와 관련된 위험을 수반합니다. 따라서 ara::core은 C++ NVI 패턴(Non-Virtual Interface)을 기반으로 다형성 메모리 리소스(PMR)에 기반한 메모리 관리를 통합합니다(SWArchitecture 61쪽). 기본 클래스 MemoryResource는 공개 인터페이스 allocate() 및 deallocate()를 선언하며, 이들은 내부적으로 순수 가상 메서드 do_allocate() 및 do_deallocate()을 구동합니다([SWS_CORE_00041], [SWS_CORE_00061]).

실시간 크리티컬한 할당 패턴을 위해 특수화된 풀 리소스를 사용할 수 있습니다. SynchronizedPoolResource은 PoolOptions을 통해 사전 구성된 청크 및 블록 크기로부터 스레드 안전한 할당을 제공합니다([SWS_CORE_00027], [SWS_CORE_00030]). 동기화 오버헤드가 없는 엄격한 스레드 로컬 처리 단계를 위해 UnsynchronizedPoolResource가 사용됩니다([SWS_CORE_00046], [SWS_CORE_00067]). release()을 통해 할당된 전체 메모리 영역을 단일 단계로 상위 upstream_resource()에 반환할 수 있으므로, 단계 지향 워크플로에서 메모리 누수를 효과적으로 방지합니다([SWS_CORE_00037], [SWS_CORE_00038], [SWS_CORE_00065]).

PMRHierarchy mr MemoryResource (Basisklasse / NVI) + allocate() + deallocate() - do_allocate() - do_deallocate() sync_pool SynchronizedPoolResource - do_allocate() [thread-safe] - do_deallocate() [thread-safe] + release() + options() sync_pool->mr erbt von unsync_pool UnsynchronizedPoolResource - do_allocate() [thread-local] - do_deallocate() [thread-local] + release() + options() unsync_pool->mr erbt von

클래스 다이어그램: Non-Virtual Interface (NVI) 패턴에 따른 다형성 메모리 리소스의 계층 구조. 출처: SWArchitecture 61쪽, [SWS_CORE_00030], [SWS_CORE_00041], [SWS_CORE_00061]

기본 유틸리티 및 컨테이너 타입(Optional, Array, Vector, Map)

정의되지 않은 동작을 방지하고 명확한 시맨틱을 보장하기 위해 core은 기본 컨테이너 및 헬퍼 타입을 표준화합니다. ara::core::Optional<T>은 안전하지 않은 널 포인터에 의존할 필요 없이 존재하거나 존재하지 않을 수 있는 값을 나타냅니다([SWS_CORE_01103], [SWS_CORE_01104], ARAComAPI 1쪽). 상태는 has_value() 또는 operator bool()을 통해 조회되는 반면, 접근은 value(), value_or() 또는 operator*()를 통해 수행됩니다([SWS_CORE_01128], [SWS_CORE_01129], [SWS_CORE_01130], [SWS_CORE_01134]). 특수 참조 오버로드 Optional<T&>를 통해 옵셔널 참조를 안전하게 유지할 수 있습니다([SWS_CORE_01151], [SWS_CORE_01167]).

고정 크기 데이터 구조를 위해 모듈은 operator[]을 통한 직접 인덱싱, at()를 통한 범위 검사 접근 및 표준 반복자를 지원하는 Array<T, N>을 제공합니다([SWS_CORE_01250], [SWS_CORE_01265], [SWS_CORE_01273]). 비교 연산자는 bool 반환 및 예외 안전성을 갖춘 엄격한 코딩 지침에 따라 구현됩니다([SWS_CORE_01290], CPP14Guidelines 241쪽). 동적으로 확장되는 시퀀스 및 연관 컨테이너는 Vector<T, Allocator> 및 Map<Key, T, Compare, Allocator>에 의해 처리됩니다([SWS_CORE_01318], [SWS_CORE_01428]). 두 타입 모두 구성 가능한 할당자를 수용하므로 다형성 MemoryResource 풀을 통해 할당을 원활하게 처리할 수 있습니다([SWS_CORE_00066], [SWS_CORE_01303], [SWS_CORE_01406]).

오류 발생 시 동작 및 Fail-Fast 종료

프로세스가 심각한 오류 상태를 안전하게 보상할 수 없는 경우 Adaptive Platform의 Fail-Fast 원칙이 적용됩니다(SWArchitecture 60쪽). Abort() 인터페이스를 통해 실행 중인 프로세스의 즉각적이고 무조건적인 종료가 트리거됩니다([SWS_CORE_00052]). 스택 해제(stack unwinding) 루틴이나 소멸자가 잘못된 후속 상태를 생성하지 않도록 보장하기 위해 이 함수는 [[noreturn]] 및 noexcept로 선언됩니다([SWS_CORE_00052], SWArchitecture 36쪽).

종료 전에 휘발성 진단 정보를 저장하거나 최종 비상 로깅 작업을 실행하기 위해, 애플리케이션은 SetAbortHandler() 또는 AddAbortHandler()을 통해 사용자 정의 콜백 함수를 등록할 수 있습니다([SWS_CORE_00050], [SWS_CORE_00051], [SWS_CORE_00054]). 등록된 중단 핸들러는 void() noexcept 시그니처를 충족해야 합니다([SWS_CORE_00053]). 핸들러가 실행된 후 플랫폼은 프로세스의 최종 종료를 강제하므로, 정의되지 않은 메모리 상태로 계속 실행되는 것은 불가능합니다(SWArchitecture 60쪽).

AbortFlow error_detect 치명적인 복구 불가능 오류 상태 call_abort Aufruf von ara::core::Abort(args...) error_detect->call_abort check_handler AbortHandler registriert? call_abort->check_handler exec_handler 등록된 AbortHandler 실행 (진단 정보 저장, 비상 로그 작성) check_handler->exec_handler 예 sys_terminate 스택 해제 없는 즉각적인 프로세스 중단 ([[noreturn]] 종료) check_handler->sys_terminate 아니요 exec_handler->sys_terminate

액티비티 다이어그램: AbortHandler 실행을 포함하는 Abort()를 통한 Fail-Fast 중단의 제어 흐름. 출처: SWArchitecture 60쪽, [SWS_CORE_00051], [SWS_CORE_00052]

더 자세한 증거

릴리스 R25-11에서 core의 사양은 일련의 규범적 정의 및 아키텍처 모델을 기반으로 합니다. 프로세스 수명 주기 및 비상 정지 동작에는 Initialize(), Deinitialize() 그리고 Abort() 및 SetAbortHandler()가 핵심을 이룹니다([SWS_CORE_00051], [SWS_CORE_00052], SWArchitecture 60쪽). 비동기 통신 모델은 주로 Future([SWS_CORE_00326], [SWS_CORE_00329]) 및 Promise([SWS_CORE_00344], [SWS_CORE_00345])에 의존하며, 이들의 상호작용은 ara::com 및 ara::ts와 같은 애플리케이션 밀접 클러스터에서 검증됩니다(ARAComAPI 46쪽, TimeSynchronization 90쪽).

오류 없는 데이터 및 메모리 관리는 Result([SWS_CORE_00751], [SWS_CORE_00766]), ErrorCode([SWS_CORE_00512]) 및 PMR 메모리 클래스 SynchronizedPoolResource와 UnsynchronizedPoolResource의 사양에 의해 표준화됩니다([SWS_CORE_00030], [SWS_CORE_00046], SWArchitecture 61쪽). 또한 컨테이너 및 비교 지침은 안전 크리티컬한 전체 시스템에서 결정론적 데이터 유지를 정의합니다([SWS_CORE_01103], [SWS_CORE_01250], [SWS_CORE_01318], CPP14Guidelines 241쪽).

이 가이드는 R25-11용 AUTOSAR 사양을 기반으로 AI 큐레이션 어시스턴트에 의해 생성되었습니다.

function: 1060 type alias: 101 class: 34 struct: 26 variable: 13 enumeration: 3

ara::core

Array 클래스

Implementation of std::array type from [array.syn] The implicitly-declared special member functions specified in [array.cons] are not expli ≙ std::array

접근 get 4
template <std::size_t I, typename T, std::size_t N> constexpr T & get (Array< T, N > &a) noexcept; SWS_CORE_01282
template <std::size_t I, typename T, std::size_t N> constexpr T && get (Array< T, N > &&a) noexcept; SWS_CORE_01283
template <std::size_t I, typename T, std::size_t N> constexpr T const & get (const Array< T, N > &a) noexcept; SWS_CORE_01284
template <size_t I, class T, size_t N> constexpr const T && get (const Array< T, N > &&) noexcept; SWS_CORE_01286
비교 != < <= == > >= 6
template <typename T, std::size_t N> bool operator!= (const Array< T, N > &lhs, const Array< T, N > &rhs) noexcept(noexcept(std::declval< T & >()==std::declval< T & >())); SWS_CORE_01291
template <typename T, std::size_t N> bool operator< (const Array< T, N > &lhs, const Array< T, N > &rhs) noexcept(noexcept(std::declval< T & >()==std::declval< T & >())); SWS_CORE_01292
template <typename T, std::size_t N> bool operator<= (const Array< T, N > &lhs, const Array< T, N > &rhs) noexcept(noexcept(std::declval< T & >()==std::declval< T & >())); SWS_CORE_01294
template <typename T, std::size_t N> bool operator== (const Array< T, N > &lhs, const Array< T, N > &rhs) noexcept(noexcept(std::declval< T & >()==std::declval< T & >())); SWS_CORE_01290
template <typename T, std::size_t N> bool operator> (const Array< T, N > &lhs, const Array< T, N > &rhs) noexcept(noexcept(std::declval< T & >()==std::declval< T & >())); SWS_CORE_01293
template <typename T, std::size_t N> bool operator>= (const Array< T, N > &lhs, const Array< T, N > &rhs) noexcept(noexcept(std::declval< T & >()==std::declval< T & >())); SWS_CORE_01295
교환 swap 1
template <typename T, std::size_t N> void swap (Array< T, N > &lhs, Array< T, N > &rhs) noexcept(noexcept(lhs.swap(rhs))); SWS_CORE_01296
BasicString 클래스

Implementation of std::pmr::basic_string type from [basic.string] ≙ std::pmr::basic_string

비교 != < <= == > >= 18
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator!= (const BasicString< Allocator > &lhs, const Basic String< Allocator > &rhs) noexcept; SWS_CORE_03367
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator!= (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03368
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator!= (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03369
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator< (const BasicString< Allocator > &lhs, const Basic String< Allocator > &rhs) noexcept; SWS_CORE_03370
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator< (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03371
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator< (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03372
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator<= (const BasicString< Allocator > &lhs, const Basic String< Allocator > &rhs) noexcept; SWS_CORE_03376
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator<= (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03377
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator<= (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03378
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator== (const BasicString< Allocator > &lhs, const Basic String< Allocator > &rhs) noexcept; SWS_CORE_03364
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator== (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03365
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator== (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03366
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator> (const BasicString< Allocator > &lhs, const Basic String< Allocator > &rhs) noexcept; SWS_CORE_03373
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator> (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03374
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator> (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03375
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator>= (const BasicString< Allocator > &lhs, const Basic String< Allocator > &rhs) noexcept; SWS_CORE_03379
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator>= (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03380
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator>= (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03381
연결 + 12
template <typename Allocator> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, const BasicString< Allocator > &rhs); SWS_CORE_03352
template <typename Allocator> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, const BasicString< Allocator > &rhs); SWS_CORE_03353
template <typename Allocator> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, BasicString< Allocator > &&rhs); SWS_CORE_03354
template <typename Allocator> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, BasicString< Allocator > &&rhs); SWS_CORE_03355
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const charT *lhs, const Basic String< Allocator > &rhs); SWS_CORE_03356
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const charT *lhs, BasicString< Allocator > &&rhs); SWS_CORE_03357
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (charT lhs, const BasicString< Allocator > &rhs); SWS_CORE_03358
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (charT lhs, BasicString< Allocator > &&rhs); SWS_CORE_03359
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03360
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, const charT *rhs); SWS_CORE_03361
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, charT rhs); SWS_CORE_03362
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, charT rhs); SWS_CORE_03363
입출력 getline << >> 6
template <class charT = char, class traits = std::char_traits<char>, class Allocator = ara::core::PolymorphicAllocator<char>> std::basic_istream< charT, traits > & getline (std::basic_istream< charT, traits > &is, BasicString< Allocator > &str, charT delim); SWS_CORE_03401
template <class charT = char, class traits = std::char_traits<char>, class Allocator = ara::core::PolymorphicAllocator<char>> std::basic_istream< charT, traits > & getline (std::basic_istream< charT, traits > &&is, BasicString< Allocator > &str, charT delim); SWS_CORE_03402
template <class charT = char, class traits = std::char_traits<char>, class Allocator = ara::core::PolymorphicAllocator<char>> std::basic_istream< charT, traits > & getline (std::basic_istream< charT, traits > &is, BasicString< Allocator > &str); SWS_CORE_03403
template <class charT = char, class traits = std::char_traits<char>, class Allocator = ara::core::PolymorphicAllocator<char>> std::basic_istream< charT, traits > & getline (std::basic_istream< charT, traits > &&is, BasicString< Allocator > &str); SWS_CORE_03404
template <class charT = char, class traits = std::char_traits<char>, class Allocator = ara::core::PolymorphicAllocator<char>> std::basic_ostream< charT, traits > & operator<< (std::basic_ostream< charT, traits > &os, const BasicString< Allocator > &str); SWS_CORE_03400
template <class charT = char, class traits = std::char_traits<char>, class Allocator = ara::core::PolymorphicAllocator<char>> std::basic_istream< charT, traits > & operator>> (std::basic_istream< charT, traits > &is, BasicString< Allocator > &str); SWS_CORE_03399
변환 to_string 9
String to_string (int val); SWS_CORE_03382
String to_string (unsigned val); SWS_CORE_03383
String to_string (long val); SWS_CORE_03384
String to_string (unsigned long val); SWS_CORE_03385
String to_string (long long val); SWS_CORE_03386
String to_string (unsigned long long val); SWS_CORE_03387
String to_string (float val); SWS_CORE_03388
String to_string (double val); SWS_CORE_03389
String to_string (long double val); SWS_CORE_03390
교환 swap 1
template <typename Allocator> void swap (BasicString< Allocator > &lhs, BasicString< Allocator > &rhs); SWS_CORE_03296
기타 stod stof stoi stol stold stoll stoul stoull 8
double stod (const ara::core::String &str, size_t *idx=nullptr); SWS_CORE_03397
float stof (const ara::core::String &str, size_t *idx=nullptr); SWS_CORE_03396
int stoi (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03391
long stol (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03392
long double stold (const ara::core::String &str, size_t *idx=nullptr); SWS_CORE_03398
long long stoll (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03394
unsigned long stoul (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03393
unsigned long long stoull (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03395
Bitset 클래스

Implementation of std::bitset type from [bitset] ≙ std::bitset

입출력 << >> 2
template <class CharT = char, class Traits = std::char_traits<CharT>, std::size_t N> std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const Bitset< N > &x); SWS_CORE_01756
template <class CharT, class Traits, std::size_t N> std::basic_istream< CharT, Traits > & operator>> (std::basic_istream< CharT, Traits > &is, Bitset< N > &x); SWS_CORE_01755
기타 & | ˆ 3
template <std::size_t N> Bitset< N > operator& (const Bitset< N > &, const Bitset< N > &) noexcept; SWS_CORE_01752
template <std::size_t N> Bitset< N > operator| (const Bitset< N > &, const Bitset< N > &) noexcept; SWS_CORE_01753
template <std::size_t N> Bitset< N > operatorˆ (const Bitset< N > &, const Bitset< N > &) noexcept; SWS_CORE_01754
CoreErrorDomain 클래스

An error domain for errors originating from the ara::core Functional Cluster.

상속 대상 ErrorDomain

CoreException 클래스

Exception type thrown for ara::core errors.

상속 대상 Exception

ErrorCode 클래스

Encapsulation of an error code

생성 MakeErrorCode 2
constexpr ErrorCode MakeErrorCode (FutureErrc code, Error Domain::SupportDataType data) noexcept; SWS_CORE_00490
constexpr ErrorCode MakeErrorCode (CoreErrc code, ErrorDomain::Support DataType data) noexcept; SWS_CORE_05290
비교 != == 2
constexpr bool operator!= (const ErrorCode &lhs, const ErrorCode &rhs) noexcept; SWS_CORE_00572
constexpr bool operator== (const ErrorCode &lhs, const ErrorCode &rhs) noexcept; SWS_CORE_00571
ErrorDomain 클래스

Encapsulation of an ErrorDomain

기반 클래스 대상 CoreErrorDomain, FutureErrorDomain

Exception 클래스

Base type for all ARA exception types

상속 대상 std::exception

기반 클래스 대상 CoreException, FutureException

Executor 클래스

Provides an interface for a executing context, which asynchronously invokes Callable ([4] [func.wrap.func]) objects in a guaranteed thread-s

Future 클래스

Implementation of std::future from [future.syn] in [11] ≙ std::future

특수화 Future< void, E >

Error domain for errors originating from ara::core::Future and ara::core::Promise

상속 대상 ErrorDomain

FutureException 클래스

Exception type thrown by ara::core::Future and ara::core::Promise

상속 대상 Exception

hash 클래스

≙ [bitset]

Denote an index-distinguishing operation to be performed in-place

in_place_t 클래스

Denote an operation to be performed in-place

in_place_type_t 클래스

Denote a type-distinguishing operation to be performed in-place

Representation of an AUTOSAR Instance Specifier, which is basically an AUTOSAR shortName path wrapper.

비교 != == 2
bool operator!= (ara::core::StringView lhs, const InstanceSpecifier &rhs) noexcept; SWS_CORE_08082
bool operator== (ara::core::StringView lhs, const InstanceSpecifier &rhs) noexcept; SWS_CORE_08081

As per std::is_nothrow_swappable, see [meta.unary.prop] in [11] ≙ std::is_nothrow_swappable

Map 클래스

Implementation of std::pmr::map container from [map] ≙ std::pmr::map

교환 swap 1
template <class Key, class T, class Compare, class Allocator> void swap (Map< Key, T, Compare, Allocator > &lhs, Map< Key, T, Compare, Allocator > &rhs) noexcept(noexcept(lhs.swap(rhs))); SWS_CORE_01496
MemoryResource 클래스

Implementation of std::pmr::memory_resource type from [mem.res.class] ≙ std::pmr::memory_resource

기반 클래스 대상 MonotonicBufferResource, SynchronizedPoolResource, UnsynchronizedPoolResource

비교 == 1
bool operator== (const MemoryResource &a, const MemoryResource &b) noexcept; SWS_CORE_06561
Monostate 클래스

≙ [variant]

접근 get get_if holds_alternative visit 15
template <std::size_t I, typename... Types> constexpr variant_alternative_t< I, Variant< Types... > > & get ( Variant< Types... > &variant) noexcept; SWS_CORE_01613
template <std::size_t I, typename... Types> constexpr variant_alternative_t< I, Variant< Types... > > && get ( Variant< Types... > &&variant) noexcept; SWS_CORE_01614
template <std::size_t I, typename... Types> constexpr const variant_alternative_t< I, Variant< Types... > > & get (const Variant< Types... > &variant) noexcept; SWS_CORE_01615
template <std::size_t I, typename... Types> constexpr const variant_alternative_t< I, Variant< Types... > > && get (const Variant< Types... > &&variant) noexcept; SWS_CORE_01616
template <typename T, typename... Types> constexpr T & get (Variant< Types... > &variant) noexcept; SWS_CORE_01617
template <typename T, typename... Types> constexpr T && get (Variant< Types... > &&variant) noexcept; SWS_CORE_01618
template <typename T, typename... Types> constexpr const T & get (const Variant< Types... > &variant) noexcept; SWS_CORE_01619
template <typename T, typename... Types> constexpr const T && get (const Variant< Types... > &&variant) noexcept; SWS_CORE_01620
template <std::size_t I, typename... Types> std::add_pointer_t< variant_alternative_t< I, Variant< Types... > > > get_if (Variant< Types... > *variant) noexcept; SWS_CORE_01621
template <std::size_t I, typename... Types> std::add_pointer_t< const variant_alternative_t< I, Variant< Types... > > > get_if (const Variant< Types... > *variant) noexcept; SWS_CORE_01622
template <typename T, typename... Types> std::add_pointer_t< T > get_if (Variant< Types... > *variant) noexcept; SWS_CORE_01623
template <typename T, typename... Types> std::add_pointer_t< const T > get_if (const Variant< Types... > *variant) noexcept; SWS_CORE_01624
template <typename T, typename... Types> constexpr bool holds_alternative (const Variant< Types... > &variant) noexcept; SWS_CORE_01626
template <typename ReturnType, typename Visitor, typename... Variants> constexpr {<invoke-result-decltype-1>} visit (Visitor &&visitor, Variants &&... variants); SWS_CORE_01633
template <typename Visitor, typename... Variants> constexpr {<invoke-result-decltype-2>} visit (Visitor &&visitor, Variants &&... variants); SWS_CORE_01634
비교 != < <= == > >= 12
template <typename... Types> constexpr bool operator!= (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01628
constexpr bool operator!= (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01642
template <typename... Types> constexpr bool operator< (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01629
constexpr bool operator< (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01643
template <typename... Types> constexpr bool operator<= (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01631
constexpr bool operator<= (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01645
template <typename... Types> constexpr bool operator== (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01627
constexpr bool operator== (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01641
template <typename... Types> constexpr bool operator> (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01630
constexpr bool operator> (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01644
template <typename... Types> constexpr bool operator>= (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01632
constexpr bool operator>= (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01646
교환 swap 1
template <typename... Types> void swap (Variant< Types... > &lhs, Variant< Types... > &rhs) noexcept(noexcept(lhs.swap(rhs))); SWS_CORE_01696

Implementation of std::pmr::monotonic_buffer_resource type from [mem.res.monotonic.buffer] ≙ std::pmr::monotonic_buffer_resource

상속 대상 MemoryResource

nullopt_t 클래스

Shall implement std::nullopt_t ≙ std::nullopt_t

Optional 클래스

Implementation of std::optional type from [optional.syn] ≙ std::optional

특수화 Optional< T & >

생성 make_optional 3
template <typename T> constexpr Optional< std::decay_t< T > > make_optional (T &&) noexcept(std::is_nothrow_move_constructible< T >::value); SWS_CORE_01138
template <typename T, typename... Args> constexpr Optional< T > make_optional (Args &&... args) noexcept(std::is_nothrow_constructible< T, Args... >::value); SWS_CORE_01139
template <typename T, typename U, typename... Args> constexpr Optional< T > make_optional (std::initializer_list< U > il, Args &&... args) noexcept(std::is_nothrow_constructible< T, std::initializer_list< U > &, Args &&... >::value); SWS_CORE_01140
비교 != < <= == > >= 30
template <typename T, typename U> constexpr bool operator!= (const Optional< T > &, const Optional< U > &); SWS_CORE_01143
template <typename T, typename U> constexpr bool operator!= (const Optional< T > &, const U &); SWS_CORE_01176
template <typename T, typename U> constexpr bool operator!= (const U &, const Optional< T > &); SWS_CORE_01177
template <typename T> constexpr bool operator!= (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01188
template <typename T> constexpr bool operator!= (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01189
template <typename T, typename U> constexpr bool operator< (const Optional< T > &, const Optional< U > &); SWS_CORE_01144
template <typename T, typename U> constexpr bool operator< (const Optional< T > &, const U &); SWS_CORE_01178
template <typename T, typename U> constexpr bool operator< (const U &, const Optional< T > &); SWS_CORE_01179
template <typename T> constexpr bool operator< (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01190
template <typename T> constexpr bool operator< (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01191
template <typename T, typename U> constexpr bool operator<= (const Optional< T > &, const Optional< U > &); SWS_CORE_01146
template <typename T, typename U> constexpr bool operator<= (const Optional< T > &, const U &); SWS_CORE_01180
template <typename T, typename U> constexpr bool operator<= (const U &, const Optional< T > &); SWS_CORE_01181
template <typename T> constexpr bool operator<= (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01192
template <typename T> constexpr bool operator<= (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01193
template <typename T, typename U> constexpr bool operator== (const Optional< T > &, const Optional< U > &); SWS_CORE_01142
template <typename T, typename U> constexpr bool operator== (const Optional< T > &, const U &); SWS_CORE_01148
template <typename T, typename U> constexpr bool operator== (const U &, const Optional< T > &); SWS_CORE_01149
template <typename T> constexpr bool operator== (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01186
template <typename T> constexpr bool operator== (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01187
template <typename T, typename U> constexpr bool operator> (const Optional< T > &, const Optional< U > &); SWS_CORE_01145
template <typename T, typename U> constexpr bool operator> (const Optional< T > &, const U &); SWS_CORE_01182
template <typename T, typename U> constexpr bool operator> (const U &, const Optional< T > &); SWS_CORE_01183
template <typename T> constexpr bool operator> (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01194
template <typename T> constexpr bool operator> (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01195
template <typename T, typename U> constexpr bool operator>= (const Optional< T > &, const Optional< U > &); SWS_CORE_01147
template <typename T, typename U> constexpr bool operator>= (const Optional< T > &, const U &); SWS_CORE_01184
template <typename T, typename U> constexpr bool operator>= (const U &, const Optional< T > &); SWS_CORE_01185
template <typename T> constexpr bool operator>= (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01196
template <typename T> constexpr bool operator>= (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01197
교환 swap 1
template <typename T> void swap (Optional< T > &lhs, Optional< T > &rhs) noexcept(std::is_ nothrow_move_constructible< T >::value &&std::is_nothrow_move_ assignable< T >::value); SWS_CORE_01096

Implementation of std::pmr::polymorphic_allocator from [mem.poly.allocator.class] ≙ std::pmr::polymorphic_allocator

비교 == 1
template <class T1, class T2> bool operator== (const PolymorphicAllocator< T1 > &a, const PolymorphicAllocator< T2 > &b) noexcept; SWS_CORE_06560
PoolOptions 클래스

Implementation of std::pmr::pool_options from [mem.poly.pool_options.class] ≙ std::pmr::pool_options

Promise 클래스

ara::core specific variant of std::promise class The implementation shall flag the condition E!=ara::core::ErrorCode as a compile error. ≙ std::promise

특수화 Promise< void, E >

Result 클래스

This class is a type that contains either a value or an error

특수화 Result< T &, E > Result< void, E >

비교 != == 10
template <typename T, typename E> bool operator!= (const Result< T, E > &lhs, const Result< T, E > &rhs); SWS_CORE_00781
template <typename T, typename E> bool operator!= (const Result< T, E > &lhs, const T &rhs); SWS_CORE_00784
template <typename T, typename E> bool operator!= (const T &lhs, const Result< T, E > &rhs); SWS_CORE_00785
template <typename T, typename E> bool operator!= (const Result< T, E > &lhs, const E &rhs); SWS_CORE_00788
template <typename T, typename E> bool operator!= (const E &lhs, const Result< T, E > &rhs); SWS_CORE_00789
template <typename T, typename E> bool operator== (const Result< T, E > &lhs, const Result< T, E > &rhs); SWS_CORE_00780
template <typename T, typename E> bool operator== (const Result< T, E > &lhs, const T &rhs); SWS_CORE_00782
template <typename T, typename E> bool operator== (const T &lhs, const Result< T, E > &rhs); SWS_CORE_00783
template <typename T, typename E> bool operator== (const Result< T, E > &lhs, const E &rhs); SWS_CORE_00786
template <typename T, typename E> bool operator== (const E &lhs, const Result< T, E > &rhs); SWS_CORE_00787
교환 swap 1
template <typename T, typename E> void swap (Result< T, E > &lhs, Result< T, E > &rhs) noexcept(noexcept(lhs.Swap(rhs))); SWS_CORE_00796
Span 클래스

Implementation of std::span container from [views.span] ≙ std::span

생성 MakeSpan 5
template <typename T> constexpr Span< T > MakeSpan (T *ptr, typename Span< T >::size_type count) noexcept; SWS_CORE_01990
template <typename T> constexpr Span< T > MakeSpan (T *firstElem, T *lastElem) noexcept; SWS_CORE_01991
template <typename T, std::size_t N> constexpr Span< T, N > MakeSpan (T(&arr)[N]) noexcept; SWS_CORE_01992
template <typename Container> constexpr Span< typename Container::value_type > MakeSpan (Container &cont) noexcept; SWS_CORE_01993
template <typename Container> constexpr Span< typename Container::value_type const > MakeSpan (const Container &cont) noexcept; SWS_CORE_01994
SteadyClock 클래스

This clock represents a monotonic clock

StringView 클래스

Implementation of std::basic_string_view type from [string.view] ≙ std::basic_string_view

비교 != < <= == > >= 6
constexpr bool operator!= (StringView lhs, StringView rhs) noexcept; SWS_CORE_02182
constexpr bool operator< (StringView lhs, StringView rhs) noexcept; SWS_CORE_02183
constexpr bool operator<= (StringView lhs, StringView rhs) noexcept; SWS_CORE_02185
constexpr bool operator== (StringView lhs, StringView rhs) noexcept; SWS_CORE_02181
constexpr bool operator> (StringView lhs, StringView rhs) noexcept; SWS_CORE_02184
constexpr bool operator>= (StringView lhs, StringView rhs) noexcept; SWS_CORE_02186
입출력 << 1

Implementation of std::pmr::synchronized_pool_resource from [mem.res.pool] ≙ std::pmr::synchronized_pool_resource

상속 대상 MemoryResource

Implementation of std::pmr::unsynchronized_pool_resource from [mem.res.pool] ≙ std::pmr::unsynchronized_pool_resource

상속 대상 MemoryResource

Variant 클래스

Implementation of std::variant type from [basic.string] ≙ std::variant

Vector 클래스

Implementation of std::pmr::vector container from [vector] ≙ std::pmr::vector

비교 != < <= == > >= 6
template <typename T, typename Allocator> bool operator!= (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01391
template <typename T, typename Allocator> bool operator< (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01392
template <typename T, typename Allocator> bool operator<= (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01393
template <typename T, typename Allocator> bool operator== (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01390
template <typename T, typename Allocator> bool operator> (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01394
template <typename T, typename Allocator> bool operator>= (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01395
교환 swap 1
template <typename T, typename Allocator> void swap (Vector< T, Allocator > &lhs, Vector< T, Allocator > &rhs) noexcept(noexcept(lhs.swap(rhs))); SWS_CORE_01396
Abort 함수

Abort the current operation This function will never return to its caller. The stack is not unwound: destructors of variables with automatic storage duration are not called. Calling this function is ill-formed if any of the arguments is not convertible to ara::core:: StringView.

template <typename... Args> [[noreturn]] void Abort (const Args &... args) noexcept;

A function declaration with the correct prototype for ara::core::SetAbortHandler This declaration exists only for providing a function type that includes noexcept and that acts as base type for a type alias, which is defined in [SWS_CORE_00050]. This compensates for the fact that the C++ standard (up to and including C++14) prohibits that noexcept appears in an alias-declaration. There is no implementation of this function.

void AbortHandlerPrototype () noexcept;

Add a custom Abort handler function. Implementations support at least 8 AbortHandlers. Implementation false is returned when either the implementation-defined limit for number of abort handlers

bool AddAbortHandler (AbortHandler handler) noexcept;
as_bytes 함수

≙ [views.span]

template <typename ElementType, std::size_t Extent> Span< const Byte, Extent==dynamic_extent ? dynamic_extent :sizeof(ElementType) *Extent > as_bytes (Span< ElementType, Extent > s) noexcept;

≙ [views.span]

template <typename ElementType, std::size_t Extent> Span< Byte, Extent==dynamic_extent ? dynamic_extent :sizeof(Element Type) *Extent > as_writable_bytes (Span< ElementType, Extent > s) noexcept;
data 함수 4

Return a pointer to the block of memory that contains the elements of a container.

오버로드 data 4
template <typename Container> constexpr auto data (Container &c) noexcept(noexcept(c.data())) -> decltype(c.data()); SWS_CORE_04110
template <typename Container> constexpr auto data (const Container &c) noexcept(noexcept(c.data())) -> decltype(c.data()); SWS_CORE_04111
template <typename T, std::size_t N> constexpr T * data (T(&array)[N]) noexcept; SWS_CORE_04112
template <typename E> constexpr const E * data (std::initializer_list< E > il) noexcept; SWS_CORE_04113

Shutdown of the ARA Framework After this call, no interaction with the ARA is allowed with the exception of types intended to be used independently of initialization as defined in [SWS_CORE_15002]. As a prerequisite to calling this API it is expected that the use of ARA interfaces has completed (with the given exceptions). It is strongly recommended to make this call in a place where it is guaranteed that the static initialization has completed and destruction of statically initialized data has not yet started.

Result< void > Deinitialize () noexcept;
empty 함수 3

Return whether the given container is empty

오버로드 empty 3
template <typename Container> constexpr auto empty (const Container &c) noexcept(noexcept(c.empty())) -> decltype(c.empty()); SWS_CORE_04130
template <typename T, std::size_t N> constexpr bool empty (const T(&array)[N]) noexcept; SWS_CORE_04131
template <typename E> constexpr bool empty (std::initializer_list< E > il) noexcept; SWS_CORE_04132

Return a reference to the global ara::core::CoreErrorDomain

constexpr const ErrorDomain & GetCoreErrorDomain () noexcept;

except for the following deviations: 1. Description references to std::pmr::new_delete_resource() are replaced by ara:: core::NewDeleteResource() 2. Description references to std::pmr::set_default_resource() are replaced by ara:: core::SetDefaultResource() 3. Return type std::pmr::memory_resource is replaced with ara::core:: MemoryResource ≙ std::pmr::new_delete_resource

MemoryResource * GetDefaultResource () noexcept;

Obtain the reference to the single global ara::core::FutureErrorDomain instance.

constexpr const ErrorDomain & GetFutureErrorDomain () noexcept;
Initialize 함수

Initialization of the ARA framework. Prior to this call, interaction with the ARA is not allowed with the exception of types intended to be used independently of initialization as defined in [SWS_CORE_15002]. It is strongly recommended to make this call in a place where it is guaranteed that static initialization has completed.

Result< void > Initialize (int &argc, char **argv) noexcept;

except for the following deviations: 1. Return type std::pmr::memory_resource is replaced with ara::core:: MemoryResource ≙ std::pmr::memory_resource

MemoryResource * NewDeleteResource () noexcept;

except for the following deviations: 1. Return type std::pmr::memory_resource is replaced with ara::core:: MemoryResource 2. It’s allocate() function returns nullptr instead of throwing std::bad_alloc ≙ std::pmr::memory_resource

MemoryResource * NullMemoryResource () noexcept;

Add a custom Abort handler function and return the most recently added one. By setting nullptr, the implementation may restore the default handler instead; this will remove all previously installed handlers. Implementation This function can be called from multiple threads simultaneously; these calls are performed in an

AbortHandler SetAbortHandler (AbortHandler handler) noexcept;

except for the following deviations: 1. Description references to std::pmr::new_delete_resource() are replaced by ara:: core::NewDeleteResource() 2. Description references to std::pmr::get_default_resource() are replaced by ara:: core::GetDefaultResource() 3. Return type std::pmr::memory_resource is replaced with ara::core:: MemoryResource ≙ std::pmr::new_delete_resource

MemoryResource * SetDefaultResource (MemoryResource *r) noexcept;
size 함수 2

Return the size of a container

오버로드 size 2
template <typename Container> constexpr auto size (const Container &c) noexcept(noexcept(c.size())) -> decltype(c.size()); SWS_CORE_04120
template <typename T, std::size_t N> constexpr std::size_t size (const T(&array)[N]) noexcept; SWS_CORE_04121
CoreErrc 열거형

Defines all errors of the ara::core Functional Cluster

enum class CoreErrc : ErrorDomain::CodeType {...};
FutureErrc 열거형

Specifies the errors that can occur upon calling Future::get() or Future::GetResult().

enum class FutureErrc : ara::core::ErrorDomain::CodeType {...};
FutureStatus 열거형

Specifies the status of a ara::core::Future as returned by: • Future<T,E>::wait_for() • Future<void,E>::wait_for() • Future<T,E>::wait_until() • Future<void,E>::wait_until() These definitions are equivalent to the ones from std::future_status. However, no item equivalent to std::future_status::deferred is available here. Implementation The numerical values of the enum literals are implementation-defined ≙ std::future_status

enum class FutureStatus : std::uint8_t {...};
AbortHandler 타입 별칭

The type of a handler for ara::core::SetAbortHandler

using AbortHandler = decltype(&AbortHandlerPrototype);
Byte 타입 별칭

A non-integral binary type. The requirements on this type are stated in "See also:" Implementation {<byte-type>} shall be an implementation-defined type

using Byte = {<byte-type>};
String 타입 별칭

≙ [basic.string]

using String = BasicString<>;
variant_alternative_t 타입 별칭

≙ [variant]

using variant_alternative_t = typename variant_alternative<I, T>::type;

≙ [views.span]

constexpr std::size_t dynamic_extent = std::numeric_limits<std::size_ t>::max();
in_place 변수

The singleton instance of ara::core::in_place_t

constexpr in_place_t in_place;

The singleton instances (one for each I of ara::core::in_place_index_t

template <std::size_t Index> constexpr in_place_index_t<Index> in_place_index {};

The singleton instances (one for each T) of ara::core::in_place_type_t

template <typename T> constexpr in_place_type_t<T> in_place_type;
nullopt 변수

≙ [optional]

constexpr nullopt_t nullopt {};

≙ [variant]

template <typename T> constexpr std::size_t variant_size_v = variant_size<T>::value;

ara::core::literals::string_view_literals

≙ [string.view]

constexpr StringView operator""_SV (const char *str, std::size_t len) noexcept;

std

hash (std) 클래스
tuple_element 클래스

≙ [array]

tuple_size 클래스

≙ [array]

네임스페이스

모듈의 UML 클래스 다이어그램

Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.

G cluster_1 ara::core cluster_2 ara::core::Bitset cluster_3 ara::core::Map cluster_4 std nara__core__CoreErrorDomain113 CoreErrorDomain nara__core__ErrorDomain335 ErrorDomain nara__core__CoreErrorDomain113->nara__core__ErrorDomain335 nara__core__CoreException713 CoreException nara__core__Exception792 Exception nara__core__CoreException713->nara__core__Exception792 nextstd__exception28 std::exception nara__core__Exception792->nextstd__exception28 nara__core__FutureErrorDomain146 FutureErrorDomain nara__core__FutureErrorDomain146->nara__core__ErrorDomain335 nara__core__FutureException511 FutureException nara__core__FutureException511->nara__core__Exception792 nara__core__MemoryResource130 MemoryResource nara__core__MonotonicBufferResource118 MonotonicBufferResource nara__core__MonotonicBufferResource118->nara__core__MemoryResource130 nara__core__SynchronizedPoolResource481 SynchronizedPoolResource nara__core__SynchronizedPoolResource481->nara__core__MemoryResource130 nara__core__UnsynchronizedPoolResource176 UnsynchronizedPoolResource nara__core__UnsynchronizedPoolResource176->nara__core__MemoryResource130 nara__core__Array326 Array nara__core__BasicString716 BasicString nara__core__Bitset255 Bitset nara__core__ErrorCode330 ErrorCode nara__core__Executor877 Executor nara__core__Future930 Future nara__core__Future__void__E__740 Future< void, E > nara__core__hash88 «struct» hash nara__core__in_place_index_t938 «struct» in_place_index_t nara__core__in_place_t356 «struct» in_place_t nara__core__in_place_type_t306 «struct» in_place_type_t nara__core__InstanceSpecifier92 InstanceSpecifier nara__core__is_nothrow_swappable987 «struct» is_nothrow_swappable nara__core__Map274 Map nara__core__Monostate901 «struct» Monostate nara__core__nullopt_t64 «struct» nullopt_t nara__core__Optional627 Optional nara__core__Optional__T____62 Optional< T & > nara__core__PolymorphicAllocator970 PolymorphicAllocator nara__core__PoolOptions463 «struct» PoolOptions nara__core__Promise131 Promise nara__core__Promise__void__E__714 Promise< void, E > nara__core__Result167 Result nara__core__Result__T____E__551 Result< T &, E > nara__core__Result__void__E__788 Result< void, E > nara__core__Span436 Span nara__core__SteadyClock455 SteadyClock nara__core__StringView801 StringView nara__core__Variant465 Variant nara__core__variant_alternative370 «struct» variant_alternative nara__core__variant_alternative__I_433 «struct» variant_alternative< I, … > nara__core__variant_alternative__I__Variant__Types_______15 «struct» variant_alternative< I, Variant< Types... > > nara__core__variant_size885 «struct» variant_size nara__core__variant_size__const24 «struct» variant_size< const volatile T > nara__core__variant_size__const_T__418 «struct» variant_size< const T > nara__core__variant_size__Variant_60 «struct» variant_size< Variant< Types... > > nara__core__variant_size__volatile_T__105 «struct» variant_size< volatile T > nara__core__Vector473 Vector nara__core__Bitset__reference533 reference nara__core__Map__value_compare839 value_compare nstd__hash__ara__core__Monostate__722 «struct» hash< ara::core::Monostate > next_core__Monostate__802 :core::Monostate > nstd__hash__ara__core__Monostate__722->next_core__Monostate__802 nstd__hash__ara__core__Optional__T__781 «struct» hash< ara::core::Optional< T > next_core__Optional__T____961 :core::Optional< T > > nstd__hash__ara__core__Optional__T__781->next_core__Optional__T____961 nstd__hash__ara__core__String__667 «struct» hash< ara::core::String > next_core__String___final444 :core::String > final nstd__hash__ara__core__String__667->next_core__String___final444 nstd__hash__ara__core__StringView__122 «struct» hash< ara::core::StringView > next_core__StringView___final857 :core::StringView > final nstd__hash__ara__core__StringView__122->next_core__StringView___final857 nstd__hash__ara__core__Variant_545 «struct» hash< ara::core::Variant< next_core__Variant__Types__________________978 :core::Variant< Types...            > > nstd__hash__ara__core__Variant_545->next_core__Variant__Types__________________978 nstd__hash__ara__core__Vector__T__Allocator____942 «struct» hash< ara::core::Vector< T, Allocator > > next_core__Vector__T__Allocator_____final470 :core::Vector< T, Allocator > > final nstd__hash__ara__core__Vector__T__Allocator____942->next_core__Vector__T__Allocator_____final470 nstd__tuple_element__I__ara__core__Array__T__N____988 «struct» tuple_element< I, ara::core::Array< T, N > > next_core__Array__T__N____306 :core::Array< T, N > > nstd__tuple_element__I__ara__core__Array__T__N____988->next_core__Array__T__N____306 nstd__tuple_size__ara__core__Array__T_805 «struct» tuple_size< ara::core::Array< T, next_core__Array__T__N________________________integral__constant__size_548 :core::Array< T, N > > :                  integral_ constant< size_t, N > nstd__tuple_size__ara__core__Array__T_805->next_core__Array__T__N________________________integral__constant__size_548