# Tutorials Welcome to the **mp-units** tutorials — your step-by-step guide to mastering type-safe physical quantities and units in C++. Each lesson is: - **Exercise-driven:** Learn by doing, with real-world scenarios and hands-on code. - **Type-safe:** Avoid common bugs by leveraging strong types and modern C++ features. - **Interactive:** Try code snippets live via Compiler Explorer embeds. - **Incremental:** Progress from basic refactoring to advanced topics like affine spaces and `std::chrono` interop. Whether you're new to physical units in C++ or looking to deepen your expertise, these practical, type-safe patterns will help you apply **mp-units** in real projects. ## Learning Path 1. [Refactor to Strong Types](refactor_to_strong_types.md) 2. [Refactor to Generic, Type-Safe Interfaces](generic_type_safe_interfaces.md) 3. [Extracting Numeric Values](extracting_numeric_values.md) 4. [Working with Temperatures](working_with_temperatures.md) 5. [Affine Spaces and Reference Origins](affine_spaces.md) 6. [Interop with `std::chrono`](interop_with_std_chrono.md) 7. [Custom Units for Dimensionless Counters](custom_dimensionless_units.md) 8. [Strongly-Typed Counts](strongly_typed_counts.md) 9. [Typed Quantities of the Same Kind](typed_quantities_same_kind.md) 10. [Custom Quantity Specifications](custom_quantity_specifications.md) 11. [Custom Base Dimensions](custom_base_dimensions.md) 12. [Preventing Confusion with Distinct Kinds](distinct_quantity_kinds.md) 13. [Faster-than-Lightspeed Constants](faster_than_lightspeed_constants.md) 14. [Incremental Migration from Legacy Code](incremental_migration.md)