Skip to main content

qtty-cpp

Actiu

Header-only C++17 library for unit-safe physical quantities, backed by the Rust qtty conversion engine via C FFI.

2 estrelles
0 forks
C++
AGPL-3.0
Actualitzat fa 2 dies

Per què existeix

qtty-cpp provides strongly typed physical quantities (Meter, Second, Kilometer, Radian, …) with user-defined literals and compile-time unit safety for C++ projects. It wraps the Rust qtty-ffi conversion engine so C++ code benefits from the same validated unit conversions.

Funcionalitats clau

  • Strong types per unit to prevent dimension mixing
  • Unit conversion via Quantity::to<T>()
  • User-defined literals (10.0_km, 5.0_s)
  • Generated headers from qtty-ffi definitions
  • CMake target for easy integration

Primers passos

// CMakeLists.txt
add_subdirectory(path/to/qtty-cpp)
target_link_libraries(myapp PRIVATE qtty_cpp)

// main.cpp
#include "qtty/qtty.hpp"
using namespace qtty;

auto distance = 100.0_km;
auto time = 2.0_h;
auto speed = distance / time;
Meter m = distance.to<Meter>();

Contribuir

Donem la benvinguda a les contribucions! Aquí tens com pots ajudar:

  • 1 Fes un fork del repositori i crea la teva branca des de main
  • 2 Fes els teus canvis i afegeix tests si s'escau
  • 3 Assegura't que tots els tests passen amb cargo test
  • 4 Envia un pull request amb una descripció clara

Llicència

Aquest projecte està llicenciat sota la llicència AGPL-3.0. Consulta el fitxer LICENSE per a més detalls.

Última versió

v0.1.0 21 de des. del 2025
Veure notes de la versió

Etiquetes

cpp c++17 units physics bindings