qtty-cpp 0.4.5
Header-only C++ wrapper for qtty
Loading...
Searching...
No Matches
area.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSD-3-Clause
2// Copyright (C) 2026 Vallés Puig, Ramon
3
4#pragma once
5
6#include "../ffi_core.hpp"
7
8namespace qtty {
9
14struct HectareTag {};
15struct AreTag {};
16struct SquareInchTag {};
17struct SquareFootTag {};
18struct SquareYardTag {};
19struct SquareMileTag {};
20struct AcreTag {};
21
22template <> struct UnitTraits<SquareMeterTag> {
23 static constexpr UnitId unit_id() { return UNIT_ID_SQUARE_METER; }
24 static constexpr std::string_view symbol() { return ""; }
25 static constexpr DimensionId dimension() { return DIMENSION_ID_AREA; }
26};
27template <> struct UnitTraits<SquareKilometerTag> {
28 static constexpr UnitId unit_id() { return UNIT_ID_SQUARE_KILOMETER; }
29 static constexpr std::string_view symbol() { return ""; }
30 static constexpr DimensionId dimension() { return DIMENSION_ID_AREA; }
31};
32template <> struct UnitTraits<SquareCentimeterTag> {
33 static constexpr UnitId unit_id() { return UNIT_ID_SQUARE_CENTIMETER; }
34 static constexpr std::string_view symbol() { return ""; }
35 static constexpr DimensionId dimension() { return DIMENSION_ID_AREA; }
36};
37template <> struct UnitTraits<SquareMillimeterTag> {
38 static constexpr UnitId unit_id() { return UNIT_ID_SQUARE_MILLIMETER; }
39 static constexpr std::string_view symbol() { return ""; }
40 static constexpr DimensionId dimension() { return DIMENSION_ID_AREA; }
41};
42template <> struct UnitTraits<HectareTag> {
43 static constexpr UnitId unit_id() { return UNIT_ID_HECTARE; }
44 static constexpr std::string_view symbol() { return "ha"; }
45 static constexpr DimensionId dimension() { return DIMENSION_ID_AREA; }
46};
47template <> struct UnitTraits<AreTag> {
48 static constexpr UnitId unit_id() { return UNIT_ID_ARE; }
49 static constexpr std::string_view symbol() { return "a"; }
50 static constexpr DimensionId dimension() { return DIMENSION_ID_AREA; }
51};
52template <> struct UnitTraits<SquareInchTag> {
53 static constexpr UnitId unit_id() { return UNIT_ID_SQUARE_INCH; }
54 static constexpr std::string_view symbol() { return "in²"; }
55 static constexpr DimensionId dimension() { return DIMENSION_ID_AREA; }
56};
57template <> struct UnitTraits<SquareFootTag> {
58 static constexpr UnitId unit_id() { return UNIT_ID_SQUARE_FOOT; }
59 static constexpr std::string_view symbol() { return "ft²"; }
60 static constexpr DimensionId dimension() { return DIMENSION_ID_AREA; }
61};
62template <> struct UnitTraits<SquareYardTag> {
63 static constexpr UnitId unit_id() { return UNIT_ID_SQUARE_YARD; }
64 static constexpr std::string_view symbol() { return "yd²"; }
65 static constexpr DimensionId dimension() { return DIMENSION_ID_AREA; }
66};
67template <> struct UnitTraits<SquareMileTag> {
68 static constexpr UnitId unit_id() { return UNIT_ID_SQUARE_MILE; }
69 static constexpr std::string_view symbol() { return "mi²"; }
70 static constexpr DimensionId dimension() { return DIMENSION_ID_AREA; }
71};
72template <> struct UnitTraits<AcreTag> {
73 static constexpr UnitId unit_id() { return UNIT_ID_ACRE; }
74 static constexpr std::string_view symbol() { return "ac"; }
75 static constexpr DimensionId dimension() { return DIMENSION_ID_AREA; }
76};
77
89
90} // namespace qtty
constexpr bool is_angular_v
Definition angles.hpp:49
static constexpr std::string_view symbol()
Definition area.hpp:74
static constexpr UnitId unit_id()
Definition area.hpp:73
static constexpr DimensionId dimension()
Definition area.hpp:75
static constexpr DimensionId dimension()
Definition area.hpp:50
static constexpr std::string_view symbol()
Definition area.hpp:49
static constexpr UnitId unit_id()
Definition area.hpp:48
static constexpr std::string_view symbol()
Definition area.hpp:44
static constexpr DimensionId dimension()
Definition area.hpp:45
static constexpr UnitId unit_id()
Definition area.hpp:43
static constexpr DimensionId dimension()
Definition area.hpp:35
static constexpr UnitId unit_id()
Definition area.hpp:33
static constexpr std::string_view symbol()
Definition area.hpp:34
static constexpr std::string_view symbol()
Definition area.hpp:59
static constexpr UnitId unit_id()
Definition area.hpp:58
static constexpr DimensionId dimension()
Definition area.hpp:60
static constexpr DimensionId dimension()
Definition area.hpp:55
static constexpr std::string_view symbol()
Definition area.hpp:54
static constexpr UnitId unit_id()
Definition area.hpp:53
static constexpr DimensionId dimension()
Definition area.hpp:30
static constexpr std::string_view symbol()
Definition area.hpp:29
static constexpr UnitId unit_id()
Definition area.hpp:28
static constexpr std::string_view symbol()
Definition area.hpp:24
static constexpr UnitId unit_id()
Definition area.hpp:23
static constexpr DimensionId dimension()
Definition area.hpp:25
static constexpr std::string_view symbol()
Definition area.hpp:69
static constexpr DimensionId dimension()
Definition area.hpp:70
static constexpr UnitId unit_id()
Definition area.hpp:68
static constexpr DimensionId dimension()
Definition area.hpp:40
static constexpr UnitId unit_id()
Definition area.hpp:38
static constexpr std::string_view symbol()
Definition area.hpp:39
static constexpr UnitId unit_id()
Definition area.hpp:63
static constexpr DimensionId dimension()
Definition area.hpp:65
static constexpr std::string_view symbol()
Definition area.hpp:64