Skip to content
Programming
Select theme
Dark
Light
Auto
Select language
English
简体中文
Study Hub
C++
Environment & Toolchain
1_compiler_and_standards
1_compiler_and_standards
Installing Compiler
Language Standard Flags and ABI Compatibility
Standard Library Implementation
Cross-compilation Toolchains
Linker Configuration
2_build_system
2_build_system
CMake Targets Properties and Generator Expressions
Ninja Build System and Parrallelism
CMake Presets and Toolchain Files
Build Caching
Unit Testing
Code Coverage
3_dependency_management
3_dependency_management
Dependency Resolution
CPM.cmake
vcpkg
Conan
Property Propagation
Binary Caching
4_development_enviroment_analysis
4_development_enviroment_analysis
Language Server Protocol Configuration
Debugger
Static Analysis
Sanitizer
Compilation Model
1_translation
1_translation
Preprocessing and AST Generation, and Object Code
Symbol Visibility
Linker
Binary Formats
Name Mangling
2_modules
2_modules
C++23
Binary Module Interfaces
Header Units
The C Runtime (CRT)
Types
Types
1_data_layout
1_data_layout
Fundamental Types
Alignment and Layout
Bit Manipulation
Stack
Heap
2_pointers_references_views
2_pointers_references_views
Pointers
Reference And Lifetime
Type Punning and the Strict Aliasing Rule
String Views and Small String Optimization
Contiguous Memory Views (std::span)
3_initialization_and_lifetime
3_initialization_and_lifetime
Storage Duration
Uniform Initialization
Aggregate Initialization
Constant Expressions
Deterministic Destruction
C++ Flashcards: Type System
C++ Types and Resource Management: Practice Problems
Resource Management
Resource_management
Resource Management and Move Semantics
1_ownership_and_raii
1_ownership_and_raii
RAII Patterns
Unique Ownership (std::unique_ptr) and EBO
Shared Ownership (std::shared_ptr) and Control Block
Weak Pointers and Cyclic Reference Breaking
Common Pitfalls
C++ Flashcards: Memory Management
C++ Memory Management Practice (Interactive)
2_value_categories_and_move
2_value_categories_and_move
Value Taxonomy
Reference Collapsing and Forwarding References
Temporary Materialization
Move Constructors, Assignment, Swap Idiom
Return Value Optimization (RVO) and NRVO
Function Architecture
1_function_mechanics
1_function_mechanics
Overload Resolution
Calling Conventions and Stack Management
Lambda Expressions — Capture Layouts and Closure Types
Type Erasure — Function Pointers, std::function, std::move_only_function
C-Interop and FFI
2_error_handling
2_error_handling
The Itanium Exception ABI
Exception Safety Guarantees
The noexcept Specifier
Algebraic Error Handling — std::optional and std::variant
Monadic Error Handling — std::expected
C++ Flashcards: Error Handling
C++ Error Handling Practice (Interactive)
Object Oriented
Object_oriented
1_class_design
1_class_design
Object Layout, vptr, and the this Pointer
Access Control and Friendship
Special Member Function Generation Rules
Operator Overloading
The Spaceship Operator
Custom Formatting with std::formatter
2_runtime_polymorphism
2_runtime_polymorphism
Virtual Functions and vtables
Inheritance, Object Slicing, and Virtual Destructors
Devirtualization and Final Specifiers
RTTI, dynamic_cast, and typeid
Deducing This and CRTP
C++ Flashcards: Object-Oriented Programming
Templates & Metaprogramming
Templates_and_metaprogramming
1_generic_programming
1_generic_programming
Template Instantiation, Monomorphization, and Code Bloat
Argument Deduction (Class and Function)
Explicit and Partial Specialization
Dependent Names and Two-Phase Lookup
Explicit Instantiation and Extern Templates
2_concepts_and_constraints
2_concepts_and_constraints
Defining Concepts and Requires Clauses
Constraint Subsumption and Overload Resolution
Standard Library Concepts
SFINAE vs Concepts
3_compile_time_computation
3_compile_time_computation
Parameter Packs and Variadic Templates
Fold Expressions and Pack Expansion
Compile-Time Branching and Constexpr Functions
Type Traits and Static Reflection Patterns
C++ Flashcards: Templates and Metaprogramming
Standard Library
1_containers_and_allocators
1_containers_and_allocators
Sequence Containers (Vector, Deque, List)
Associative and Unordered Containers
Iterator Categories, Traversal, and Invalidation
Polymorphic Memory Resources (PMR)
2_algorithms_and_ranges
2_algorithms_and_ranges
Iterator-Sentinel Model
Range Adaptors, Views, and Composition
Projections and Callable Objects
Range Materialization (std::ranges::to)
Parallel Algorithms
3_input_output_formatting
3_input_output_formatting
Stream Buffers and Locale Facets
Type-Safe Formatting (std::format, std::print)
Unicode Support
4_system_utilities
4_system_utilities
Filesystem Library
Chrono Library
Random Number Generation
Regular Expressions
Concurrency
1_threading_and_synchronization
1_threading_and_synchronization
Thread Execution (std::jthread) and Hardware Mapping
Data Races and Critical Sections
Mutexes, Shared Locks, and Deadlock Prevention
Condition Variables, Latches, and Barriers
Thread-Local Storage (TLS)
2_memory_model_and_atomics
2_memory_model_and_atomics
Instruction Reordering and Happens-Before
Cache Coherency (MESI) and False Sharing
Atomic Operations and Lock-Free Programming
Memory Orderings
Compare-and-Swap (CAS) Loops
3_coroutines_and_async_io
3_coroutines_and_async_io
Stackless Coroutine Frames and Heap Allocation
Coroutine Handle, Promise Type, and Awaiter
Generators (std::generator)
Task Scheduling and Executors
Futures, Promises, and Async Flows
Other Languages
Dart
Elixir
Go
Haskell
Java
Kotlin
Python
Ruby
Rust
Swift
TypeScript
About
Glossary
Select theme
Dark
Light
Auto
Select language
English
简体中文
Home
/
Programming
/
Types
/
Data Layout
1_data_layout
1_data_layout
Section titled “1_data_layout”
Topics
Section titled “Topics”
1_fundamental_types
2_layout
3_bit_manipulation
4_stack
5_heap
Mark this page as reviewed