- Continued Texture Implementation

- Began reorganizing the planning document into /planning/
This commit is contained in:
2025-08-04 21:11:22 -04:00
parent ff4d6efedc
commit 4a3639ecb4
14 changed files with 674 additions and 31 deletions

204
planning/CPP_LANGUAGE.md Normal file
View File

@@ -0,0 +1,204 @@
# C++ Language Library (`lang`)
## Table of Contents
<!-- TOC -->
* [Home](./CONTENTS.md#planning-documentation-for-fennec)
* [C++ Language Library (`lang`)](#c-language-library-lang)
* [Table of Contents](#table-of-contents)
* [Introduction](#introduction)
* [Implementation](#implementation)
* [Diagnostics](#diagnostics)
* [Utility](#utility)
* [Primary Types](#primary-types)
* [Composite Types](#composite-types)
* [Type Properties](#type-properties)
* [Supported Operations](#supported-operations)
* [Property Queries](#property-queries)
* [Type Relationships](#type-relationships)
* [Type Transformations](#type-transformations)
* [Other Transformations](#other-transformations)
* [Logical Operations](#logical-operations)
* [Sequences](#sequences)
<!-- TOC -->
## Introduction
&ensp; This library contains headers and classes related to the C++ language. The
contents of this library are restricted to the Language Support, Diagnostics, and
Metaprogramming libraries of the C++ Standard Library and Template Library.
See:
- [Language Support Library](https://cppreference.com/w/cpp/utility.html#Language_support)
- Basic Memory Management is handled in the [Memory Library](./MEMORY_LIBRARY.md#)
- [Diagnostics Library](https://cppreference.com/w/cpp/error.html)
- [Metaprogramming Library](https://cppreference.com/w/cpp/meta.html)
## 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 |
|:----------------------|:-----------:|:------:|
| sequence | ✔ | ✔ |
| integer_sequence | ✔ | ✔ |
| make_integer_sequence | ✔ | ✔ |
| index_sequence | ✔ | ✔ |
| make_index_sequence | ✔ | ✔ |
| concat_sequence | ✔ | ✔ |