9.6 KiB
9.6 KiB
C++ Language Library (lang)
Table of Contents
Introduction
This library contains headers and classes related to the C++ language. The
contents of this library include the Language Support, Diagnostics, and
Metaprogramming libraries of the C++ Standard Library and Template Library.
See:
- Language Support Library
- Basic Memory Management is handled in the Memory Library
- Diagnostics Library
- Metaprogramming Library
Implementation
Diagnostics
| Symbol | Implemented | Passed |
|---|---|---|
| assert | ✅ | ✅ |
| assertf | ✅ | ✅ |
| assertd | ✅ | ✅ |
Utility
| Symbol | Implemented | Passed |
|---|---|---|
| numeric_limits | ✅ | ✅ |
| initializer_list | ⛔ | ⛔ |
Primary Types
| Symbol | Implemented | Passed |
|---|---|---|
| is_void | ✅ | ✅ |
| is_null_pointer | ✅ | ✅ |
| is_integral | ✅ | ✅ |
| is_floating_point | ✅ | ✅ |
| is_array | ✅ | ❓ |
| is_enum | ⛔ | ⛔ |
| is_union | ⛔ | ⛔ |
| is_class | ✅ | ✅ |
| is_function | ⛔ | ⛔ |
| is_pointer | ✅ | ✅ |
| is_lvalue_reference | ✅ | ✅ |
| is_rvalue_reference | ✔ | ✔ |
| is_member_object_pointer | ⛔ | ⛔ |
| is_member_function_pointer | ⛔ | ⛔ |
Composite Types
| Symbol | Implemented | Passed |
|---|---|---|
| is_fundamental | ✔ | ✔ |
| is_arithmetic | ✔ | ✔ |
| is_scalar | ⛔ | ⛔ |
| is_object | ⛔ | ⛔ |
| is_compound | ⛔ | ⛔ |
| is_reference | ⛔ | ⛔ |
| is_member_pointer | ⛔ | ⛔ |
Type Properties
| Symbol | Implemented | Passed |
|---|---|---|
| is_const | ✔ | ✔ |
| is_volatile | ✔ | ✔ |
| is_trivially_copyable | ✔ | ✔ |
| is_standard_layout | ⛔ | ⛔ |
| has_unique_object_representations | ⛔ | ⛔ |
| is_empty | ⛔ | ⛔ |
| is_polymorphic | ⛔ | ⛔ |
| is_abstract | ⛔ | ⛔ |
| is_final | ⛔ | ⛔ |
| is_aggregate | ⛔ | ⛔ |
| is_implicit_lifetime | ⛔ | ⛔ |
| is_signed | ✔ | ✔ |
| is_unsigned | ✔ | ✔ |
| is_bounded_array | ⛔ | ⛔ |
| is_unbounded_array | ⛔ | ⛔ |
| is_scoped_enum | ⛔ | ⛔ |
Supported Operations
| Symbol | Implemented | Passed |
|---|---|---|
| is_constructible | ✔ | ✔ |
| is_trivially_constructible | ✔ | ✔ |
| is_nothrow_constructible | ⛔ | ⛔ |
| is_default_constructible | ✔ | ✔ |
| is_trivially_default_constructible | ⛔ | ⛔ |
| is_nothrow_default_constructible | ⛔ | ⛔ |
| is_copy_constructible | ✔ | ✔ |
| is_trivially_copy_constructible | ⛔ | ⛔ |
| is_nothrow_copy_constructible | ⛔ | ⛔ |
| is_move_constructible | ✔ | ✔ |
| is_trivially_move_constructible | ⛔ | ⛔ |
| is_nothrow_move_constructible | ⛔ | ⛔ |
| is_destructible | ⛔ | ⛔ |
| is_trivially_destructible | ⛔ | ❌ |
| is_nothrow_destructible | ❌ | ❌ |
| has_virtual_destructor | ❌ | ❌ |
| is_swappable | ❌ | ❌ |
| is_swappable_with | ❌ | ❌ |
| is_nothrow_swappable | ❌ | ❌ |
| is_nothrow_swappable_with | ❌ | ❌ |
| reference_constructs_from_temporary | ❌ | ❌ |
| reference_converts_from_temporary | ❌ | ❌ |
Property Queries
| Symbol | Implemented | Passed |
|---|---|---|
| alignment_of | ❌ | ❌ |
| rank | ❌ | ❌ |
| extent | ❌ | ❌ |
Type Relationships
| Symbol | Implemented | Passed |
|---|---|---|
| is_same | ✔ | ✔ |
| is_base_of | ❌ | ❌ |
| is_virtual_base_of | ❌ | ❌ |
| is_convertible | ✔ | ✔ |
| is_nothrow_convertible | ❌ | ❌ |
| is_layout_compatible | ❌ | ❌ |
| is_pointer_interconvertible_base_of | ❌ | ❌ |
| is_invocable | ❌ | ❌ |
| is_invocable_r | ❌ | ❌ |
| is_nothrow_invocable | ❌ | ❌ |
| is_nothrow_invocable_r | ❌ | ❌ |
Type Transformations
| Symbol | Implemented | Passed |
|---|---|---|
| add_const | ✔ | ✔ |
| add_volatile | ✔ | ✔ |
| add_cv | ✔ | ✔ |
| remove_const | ✔ | ✔ |
| remove_volatile | ✔ | ✔ |
| remove_cv | ✔ | ✔ |
| add_lvalue_reference | ✔ | ✔ |
| add_rvalue_reference | ✔ | ✔ |
| remove_reference | ✔ | ✔ |
| add_pointer | ✔ | ✔ |
| remove_pointer | ✔ | ✔ |
| make_signed | ✔ | ✔ |
| make_unsigned | ✔ | ✔ |
| remove_extent | ❌ | ❌ |
| remove_all_extents | ❌ | ❌ |
Other Transformations
| Symbol | Implemented | Passed |
|---|---|---|
| aligned_storage | ❌ | ❌ |
| aligned_union | ❌ | ❌ |
| aligned_union | ❌ | ❌ |
| decay | 🚧 | 🚧 |
| remove_cvref | ✔ | ✔ |
| enable_if | ✔ | ✔ |
| conditional | ✔ | ✔ |
| common_type | ❌ | ❌ |
| common_reference | ❌ | ❌ |
| basic_common_reference | ❌ | ❌ |
| underlying_type | ❌ | ❌ |
| result_of | ❌ | ❌ |
| invoke_result | ❌ | ❌ |
| void_t | ✔ | ✔ |
Logical Operations
| Symbol | Implemented | Passed |
|---|---|---|
| conjunction | ❌ | ❌ |
| disjunction | ❌ | ❌ |
| negation | ❌ | ❌ |
Sequences
| Symbol | Implemented | Passed |
|---|---|---|
| const_sequence | ✔ | ✔ |
const_integer_sequence (std::integer_sequence) |
✔ | ✔ |
| make_integer_sequence | ✔ | ✔ |
const_index_sequence (std::index_sequence) |
✔ | ✔ |
| make_index_sequence | ✔ | ✔ |
| concat_sequence | ✔ | ✔ |