mirror of
https://github.com/mpusz/mp-units.git
synced 2026-07-07 17:10:53 +02:00
85 lines
3.6 KiB
Markdown
85 lines
3.6 KiB
Markdown
# Tutorials
|
|
|
|
Welcome to **mp-units** tutorials! These step-by-step lessons will teach you
|
|
the library from scratch.
|
|
|
|
## What are Tutorials?
|
|
|
|
Tutorials are **learning-oriented** lessons that guide you through using
|
|
**mp-units** for the first time.
|
|
|
|
Each tutorial:
|
|
|
|
- ✅ Assumes no prior knowledge of the library
|
|
- ✅ Teaches by doing with interactive examples
|
|
- ✅ Builds your confidence progressively
|
|
- ✅ Provides immediate hands-on experience
|
|
|
|
**Prerequisites**: Basic C++ knowledge and a good mood! 😊
|
|
|
|
## Learning Path
|
|
|
|
### 1. Quick Start (~30 minutes)
|
|
|
|
<!-- markdownlint-disable MD013 -->
|
|
Get up and running with the basics:
|
|
|
|
- [Your First Quantities](quick_start/first_quantities.md) (~10 min) - Create quantities and see them in action
|
|
- [Simple Math](quick_start/simple_math.md) (~10 min) - Perform calculations with quantities
|
|
- [Building a Calculator](quick_start/building_calculator.md) (~10 min) - Put it together in a real program
|
|
|
|
### 2. Working with Units (~50 minutes)
|
|
|
|
Learn to convert and work with different unit systems:
|
|
|
|
- [Unit Conversions](working_with_units/unit_conversions.md) (~15 min) - Convert between compatible units
|
|
- [Safe and Unsafe Conversions](working_with_units/safe_unsafe_conversions.md) (~15 min) - Handle truncation and forcing conversions
|
|
- [Extracting Numeric Values](working_with_units/extracting_numeric_values.md) (~20 min) - Get numerical values safely
|
|
|
|
### 3. Type Safety (~65 minutes)
|
|
|
|
Experience compile-time safety in action:
|
|
|
|
- [Compile-Time Protection](type_safety/compile_time_protection.md) (~15 min) - See the compiler catch errors
|
|
- [Automatic Dimensional Analysis](type_safety/dimensional_analysis.md) (~15 min) - Automatic unit calculations
|
|
- [Quantity Specifications](type_safety/quantity_specifications.md) (~20 min) - Quantity hierarchies and type-safe interfaces
|
|
- [Generic Interfaces](type_safety/generic_interfaces.md) (~15 min) - Flexible functions with QuantityOf
|
|
|
|
### 4. Affine Space (~90 minutes)
|
|
|
|
Understand points vs quantities:
|
|
|
|
- [Points and Quantities](affine_space/points_and_quantities.md) (~15 min) - The difference and why it matters
|
|
- [Point Origins](affine_space/point_origins.md) (~15 min) - Working with absolute positions
|
|
- [Temperature Handling](affine_space/temperature_handling.md) (~10 min) - Absolute vs relative temperatures
|
|
- [Temperature Applications](affine_space/temperature_applications.md) (~15 min) - Advanced temperature operations
|
|
- [Bounded Quantity Points](affine_space/bounded_quantity_points.md) (~15 min) - Attaching domain constraints to origins
|
|
- [Custom Contract Handlers](affine_space/custom_contract_handlers.md) (~20 min) - Exception handling for production systems
|
|
- [Frame Projections](affine_space/frame_projections.md) (~20 min) - Converting between independent reference frames
|
|
<!-- markdownlint-enable MD013 -->
|
|
|
|
!!! success "Total time"
|
|
|
|
~255 minutes to complete all tutorials.
|
|
|
|
## What's Next?
|
|
|
|
After completing the tutorials:
|
|
|
|
- **Study**: Read the [User's Guide](../users_guide/index.md) for explanation-oriented
|
|
understanding of concepts
|
|
- **Practice**: Try [Workshops](../workshops/index.md) with hands-on exercises
|
|
- **Apply**: Browse [How-to Guides](../how_to_guides/index.md) for task-oriented
|
|
solutions to specific problems
|
|
- **Explore**: Check [Examples](../examples/index.md) for complete applications
|
|
- **Lookup**: Use the [Reference](../reference/index.md) for information-oriented
|
|
technical details
|
|
|
|
## Getting Help
|
|
|
|
- Check the [FAQ](../getting_started/faq.md) for common questions
|
|
- Visit the [GitHub repository](https://github.com/mpusz/mp-units) to report issues
|
|
- Join discussions in [GitHub Discussions](https://github.com/mpusz/mp-units/discussions)
|
|
|
|
Let's begin!
|