모듈 ara::core — Adaptive Platform Core
모듈 가이드AI 생성
플랫폼 전반의 C++ 기본 타입, 결함 감내형 결과 타입 및 결정론적 메모리 풀을 제공합니다.
플랫폼 전반의 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])를 통해 동적 메모리 할당을 제어합니다.
컨텍스트 다이어그램: 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쪽).
활동 다이어그램: 오류가 없는 경우와 오류가 발생한 경우 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쪽).
컨텍스트 다이어그램: 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를 통한 워커와 애플리케이션 간의 비동기 값 및 오류 전송. 출처: [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]).
활동 다이어그램: 오류가 없는 경우와 오류가 발생한 경우 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]).
클래스 다이어그램: 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쪽).
액티비티 다이어그램: 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::literals::string_view_literals
string_view_hash (std)tuple_elementtuple_size클래스
ArrayBasicStringBitsetCoreErrorDomainCoreExceptionErrorCodeErrorDomainExceptionExecutorFutureFutureErrorDomainFutureExceptionhashhash (std)in_place_index_tin_place_tin_place_type_tInstanceSpecifieris_nothrow_swappableMapMemoryResourceMonostateMonotonicBufferResourcenullopt_tOptionalPolymorphicAllocatorPoolOptionsPromiseResultSpanSteadyClockStringViewSynchronizedPoolResourcetuple_elementtuple_sizeUnsynchronizedPoolResourceVariantvariant_alternativevariant_sizeVector함수
AbortAbortHandlerPrototypeAddAbortHandleras_bytesas_writable_bytesdataDeinitializeemptyGetCoreErrorDomainGetDefaultResourceGetFutureErrorDomainInitializeNewDeleteResourceNullMemoryResourceSetAbortHandlerSetDefaultResourcesizestring_view_타입
AbortHandlerByteStringvariant_alternative_t열거형
CoreErrcFutureErrcFutureStatus상수
dynamic_extentin_placein_place_indexin_place_typenulloptvariant_size_v주제 맵
ara::core
67이 릴리스에 대한 요소 데이터가 없습니다
ara::core
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_01282template <std::size_t I, typename T, std::size_t N> constexpr T && get (Array< T, N > &&a) noexcept; SWS_CORE_01283template <std::size_t I, typename T, std::size_t N> constexpr T const & get (const Array< T, N > &a) noexcept; SWS_CORE_01284template <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_01291template <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_01292template <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_01294template <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_01290template <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_01293template <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_01296Implementation 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_03367template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator!= (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03368template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator!= (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03369template <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_03370template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator< (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03371template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator< (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03372template <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_03376template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator<= (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03377template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator<= (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03378template <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_03364template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator== (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03365template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator== (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03366template <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_03373template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator> (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03374template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator> (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03375template <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_03379template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator>= (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03380template <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_03352template <typename Allocator> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, const BasicString< Allocator > &rhs); SWS_CORE_03353template <typename Allocator> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, BasicString< Allocator > &&rhs); SWS_CORE_03354template <typename Allocator> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, BasicString< Allocator > &&rhs); SWS_CORE_03355template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const charT *lhs, const Basic String< Allocator > &rhs); SWS_CORE_03356template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const charT *lhs, BasicString< Allocator > &&rhs); SWS_CORE_03357template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (charT lhs, const BasicString< Allocator > &rhs); SWS_CORE_03358template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (charT lhs, BasicString< Allocator > &&rhs); SWS_CORE_03359template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03360template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, const charT *rhs); SWS_CORE_03361template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, charT rhs); SWS_CORE_03362template <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_03401template <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_03402template <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_03403template <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_03404template <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_03400template <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_03382String to_string (unsigned val); SWS_CORE_03383String to_string (long val); SWS_CORE_03384String to_string (unsigned long val); SWS_CORE_03385String to_string (long long val); SWS_CORE_03386String to_string (unsigned long long val); SWS_CORE_03387String to_string (float val); SWS_CORE_03388String to_string (double val); SWS_CORE_03389String 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_03397float stof (const ara::core::String &str, size_t *idx=nullptr); SWS_CORE_03396int stoi (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03391long stol (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03392long double stold (const ara::core::String &str, size_t *idx=nullptr); SWS_CORE_03398long long stoll (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03394unsigned long stoul (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03393unsigned long long stoull (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03395Implementation 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_01756template <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_01752template <std::size_t N> Bitset< N > operator| (const Bitset< N > &, const Bitset< N > &) noexcept; SWS_CORE_01753template <std::size_t N> Bitset< N > operatorˆ (const Bitset< N > &, const Bitset< N > &) noexcept; SWS_CORE_01754An error domain for errors originating from the ara::core Functional Cluster.
상속 대상 ErrorDomain
Exception type thrown for ara::core errors.
상속 대상 Exception
Encapsulation of an error code
생성 MakeErrorCode 2
constexpr ErrorCode MakeErrorCode (FutureErrc code, Error Domain::SupportDataType data) noexcept; SWS_CORE_00490constexpr 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_00572constexpr bool operator== (const ErrorCode &lhs, const ErrorCode &rhs) noexcept; SWS_CORE_00571Encapsulation of an ErrorDomain
기반 클래스 대상 CoreErrorDomain, FutureErrorDomain
Provides an interface for a executing context, which asynchronously invokes Callable ([4] [func.wrap.func]) objects in a guaranteed thread-s
Implementation of std::future from [future.syn] in [11] ≙ std::future
Error domain for errors originating from ara::core::Future and ara::core::Promise
상속 대상 ErrorDomain
Exception type thrown by ara::core::Future and ara::core::Promise
상속 대상 Exception
≙ [bitset]
Denote an index-distinguishing operation to be performed in-place
Denote an operation to be performed in-place
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_08082bool operator== (ara::core::StringView lhs, const InstanceSpecifier &rhs) noexcept; SWS_CORE_08081As per std::is_nothrow_swappable, see [meta.unary.prop] in [11] ≙ std::is_nothrow_swappable
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_01496Implementation 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≙ [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_01613template <std::size_t I, typename... Types> constexpr variant_alternative_t< I, Variant< Types... > > && get ( Variant< Types... > &&variant) noexcept; SWS_CORE_01614template <std::size_t I, typename... Types> constexpr const variant_alternative_t< I, Variant< Types... > > & get (const Variant< Types... > &variant) noexcept; SWS_CORE_01615template <std::size_t I, typename... Types> constexpr const variant_alternative_t< I, Variant< Types... > > && get (const Variant< Types... > &&variant) noexcept; SWS_CORE_01616template <typename T, typename... Types> constexpr T & get (Variant< Types... > &variant) noexcept; SWS_CORE_01617template <typename T, typename... Types> constexpr T && get (Variant< Types... > &&variant) noexcept; SWS_CORE_01618template <typename T, typename... Types> constexpr const T & get (const Variant< Types... > &variant) noexcept; SWS_CORE_01619template <typename T, typename... Types> constexpr const T && get (const Variant< Types... > &&variant) noexcept; SWS_CORE_01620template <std::size_t I, typename... Types> std::add_pointer_t< variant_alternative_t< I, Variant< Types... > > > get_if (Variant< Types... > *variant) noexcept; SWS_CORE_01621template <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_01622template <typename T, typename... Types> std::add_pointer_t< T > get_if (Variant< Types... > *variant) noexcept; SWS_CORE_01623template <typename T, typename... Types> std::add_pointer_t< const T > get_if (const Variant< Types... > *variant) noexcept; SWS_CORE_01624template <typename T, typename... Types> constexpr bool holds_alternative (const Variant< Types... > &variant) noexcept; SWS_CORE_01626template <typename ReturnType, typename Visitor, typename... Variants> constexpr {<invoke-result-decltype-1>} visit (Visitor &&visitor, Variants &&... variants); SWS_CORE_01633template <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_01628constexpr bool operator!= (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01642template <typename... Types> constexpr bool operator< (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01629constexpr bool operator< (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01643template <typename... Types> constexpr bool operator<= (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01631constexpr bool operator<= (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01645template <typename... Types> constexpr bool operator== (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01627constexpr bool operator== (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01641template <typename... Types> constexpr bool operator> (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01630constexpr bool operator> (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01644template <typename... Types> constexpr bool operator>= (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01632constexpr 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_01696Implementation of std::pmr::monotonic_buffer_resource type from [mem.res.monotonic.buffer] ≙ std::pmr::monotonic_buffer_resource
상속 대상 MemoryResource
Shall implement std::nullopt_t ≙ std::nullopt_t
Implementation of 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_01138template <typename T, typename... Args> constexpr Optional< T > make_optional (Args &&... args) noexcept(std::is_nothrow_constructible< T, Args... >::value); SWS_CORE_01139template <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_01143template <typename T, typename U> constexpr bool operator!= (const Optional< T > &, const U &); SWS_CORE_01176template <typename T, typename U> constexpr bool operator!= (const U &, const Optional< T > &); SWS_CORE_01177template <typename T> constexpr bool operator!= (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01188template <typename T> constexpr bool operator!= (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01189template <typename T, typename U> constexpr bool operator< (const Optional< T > &, const Optional< U > &); SWS_CORE_01144template <typename T, typename U> constexpr bool operator< (const Optional< T > &, const U &); SWS_CORE_01178template <typename T, typename U> constexpr bool operator< (const U &, const Optional< T > &); SWS_CORE_01179template <typename T> constexpr bool operator< (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01190template <typename T> constexpr bool operator< (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01191template <typename T, typename U> constexpr bool operator<= (const Optional< T > &, const Optional< U > &); SWS_CORE_01146template <typename T, typename U> constexpr bool operator<= (const Optional< T > &, const U &); SWS_CORE_01180template <typename T, typename U> constexpr bool operator<= (const U &, const Optional< T > &); SWS_CORE_01181template <typename T> constexpr bool operator<= (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01192template <typename T> constexpr bool operator<= (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01193template <typename T, typename U> constexpr bool operator== (const Optional< T > &, const Optional< U > &); SWS_CORE_01142template <typename T, typename U> constexpr bool operator== (const Optional< T > &, const U &); SWS_CORE_01148template <typename T, typename U> constexpr bool operator== (const U &, const Optional< T > &); SWS_CORE_01149template <typename T> constexpr bool operator== (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01186template <typename T> constexpr bool operator== (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01187template <typename T, typename U> constexpr bool operator> (const Optional< T > &, const Optional< U > &); SWS_CORE_01145template <typename T, typename U> constexpr bool operator> (const Optional< T > &, const U &); SWS_CORE_01182template <typename T, typename U> constexpr bool operator> (const U &, const Optional< T > &); SWS_CORE_01183template <typename T> constexpr bool operator> (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01194template <typename T> constexpr bool operator> (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01195template <typename T, typename U> constexpr bool operator>= (const Optional< T > &, const Optional< U > &); SWS_CORE_01147template <typename T, typename U> constexpr bool operator>= (const Optional< T > &, const U &); SWS_CORE_01184template <typename T, typename U> constexpr bool operator>= (const U &, const Optional< T > &); SWS_CORE_01185template <typename T> constexpr bool operator>= (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01196template <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_01096Implementation 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_06560Implementation of std::pmr::pool_options from [mem.poly.pool_options.class] ≙ std::pmr::pool_options
ara::core specific variant of std::promise class The implementation shall flag the condition E!=ara::core::ErrorCode as a compile error. ≙ std::promise
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_00781template <typename T, typename E> bool operator!= (const Result< T, E > &lhs, const T &rhs); SWS_CORE_00784template <typename T, typename E> bool operator!= (const T &lhs, const Result< T, E > &rhs); SWS_CORE_00785template <typename T, typename E> bool operator!= (const Result< T, E > &lhs, const E &rhs); SWS_CORE_00788template <typename T, typename E> bool operator!= (const E &lhs, const Result< T, E > &rhs); SWS_CORE_00789template <typename T, typename E> bool operator== (const Result< T, E > &lhs, const Result< T, E > &rhs); SWS_CORE_00780template <typename T, typename E> bool operator== (const Result< T, E > &lhs, const T &rhs); SWS_CORE_00782template <typename T, typename E> bool operator== (const T &lhs, const Result< T, E > &rhs); SWS_CORE_00783template <typename T, typename E> bool operator== (const Result< T, E > &lhs, const E &rhs); SWS_CORE_00786template <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_00796Implementation 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_01990template <typename T> constexpr Span< T > MakeSpan (T *firstElem, T *lastElem) noexcept; SWS_CORE_01991template <typename T, std::size_t N> constexpr Span< T, N > MakeSpan (T(&arr)[N]) noexcept; SWS_CORE_01992template <typename Container> constexpr Span< typename Container::value_type > MakeSpan (Container &cont) noexcept; SWS_CORE_01993template <typename Container> constexpr Span< typename Container::value_type const > MakeSpan (const Container &cont) noexcept; SWS_CORE_01994This clock represents a monotonic clock
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_02182constexpr bool operator< (StringView lhs, StringView rhs) noexcept; SWS_CORE_02183constexpr bool operator<= (StringView lhs, StringView rhs) noexcept; SWS_CORE_02185constexpr bool operator== (StringView lhs, StringView rhs) noexcept; SWS_CORE_02181constexpr bool operator> (StringView lhs, StringView rhs) noexcept; SWS_CORE_02184constexpr bool operator>= (StringView lhs, StringView rhs) noexcept; SWS_CORE_02186입출력 << 1
std::ostream & operator<< (std::ostream &os, StringView sv); SWS_CORE_02187Implementation 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
Implementation of std::variant type from [basic.string] ≙ std::variant
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_01391template <typename T, typename Allocator> bool operator< (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01392template <typename T, typename Allocator> bool operator<= (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01393template <typename T, typename Allocator> bool operator== (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01390template <typename T, typename Allocator> bool operator> (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01394template <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_01396Abort 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;≙ [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;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_04110template <typename Container> constexpr auto data (const Container &c) noexcept(noexcept(c.data())) -> decltype(c.data()); SWS_CORE_04111template <typename T, std::size_t N> constexpr T * data (T(&array)[N]) noexcept; SWS_CORE_04112template <typename E> constexpr const E * data (std::initializer_list< E > il) noexcept; SWS_CORE_04113Shutdown 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;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_04130template <typename T, std::size_t N> constexpr bool empty (const T(&array)[N]) noexcept; SWS_CORE_04131template <typename E> constexpr bool empty (std::initializer_list< E > il) noexcept; SWS_CORE_04132Return 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;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;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_04120template <typename T, std::size_t N> constexpr std::size_t size (const T(&array)[N]) noexcept; SWS_CORE_04121Defines all errors of the ara::core Functional Cluster
enum class CoreErrc : ErrorDomain::CodeType {...};Specifies the errors that can occur upon calling Future::get() or Future::GetResult().
enum class FutureErrc : ara::core::ErrorDomain::CodeType {...};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 {...};The type of a handler for ara::core::SetAbortHandler
using AbortHandler = decltype(&AbortHandlerPrototype);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>};≙ [basic.string]
using String = BasicString<>;≙ [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();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;≙ [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
Specialization of std::hash (hashing function for ara::core::Monostate) ≙ std::hash
특수화 hash< ara::core::Optional< T > hash< ara::core::String > hash< ara::core::StringView > hash< ara::core::Variant< hash< ara::core::Vector< T, Allocator > >
≙ [array]
≙ [array]
네임스페이스
- ara::core 50 Klassen, 194 freie Funktionen
- ara::core::literals::string_view_literals 0 Klassen, 1 freie Funktionen
- std 8 Klassen, 0 freie Funktionen
모듈의 UML 클래스 다이어그램
Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문