refactor: IWYU applied to the source files

`alternative_namespaces` examples left out as I consider them a subject for removal in the nearest future.
This commit is contained in:
Mateusz Pusz
2021-03-30 13:21:05 +02:00
parent 01935996e6
commit 37cfc53d1d
163 changed files with 977 additions and 352 deletions

View File

@@ -20,10 +20,15 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE. // SOFTWARE.
#include <units/isq/si/cgs/speed.h> #include <units/isq/si/cgs/length.h>
#include <units/isq/si/international/speed.h> #include <units/isq/si/cgs/speed.h> // IWYU pragma: keep
#include <units/isq/si/international/length.h>
#include <units/isq/si/international/speed.h> // IWYU pragma: keep
#include <units/isq/si/length.h> // IWYU pragma: keep
#include <units/isq/si/time.h>
#include <units/isq/si/speed.h> #include <units/isq/si/speed.h>
#include <units/quantity_io.h> #include <units/quantity_io.h>
#include <exception>
#include <iostream> #include <iostream>
namespace { namespace {

View File

@@ -1,14 +1,40 @@
#include <units/isq/si/constants.h> // The MIT License (MIT)
//
// Copyright (c) 2018 Mateusz Pusz
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#include <units/format.h>
#include <units/generic/dimensionless.h>
#include <units/isq/si/amount_of_substance.h>
#include <units/isq/si/area.h> #include <units/isq/si/area.h>
#include <units/isq/si/speed.h> #include <units/isq/si/constants.h>
#include <units/isq/si/density.h> #include <units/isq/si/density.h>
#include <units/isq/si/force.h> #include <units/isq/si/force.h>
#include <units/isq/si/length.h>
#include <units/isq/si/mass.h> #include <units/isq/si/mass.h>
#include <units/isq/si/speed.h> // IWYU pragma: keep
#include <units/isq/si/time.h> #include <units/isq/si/time.h>
#include <units/isq/si/volume.h> #include <units/isq/si/volume.h>
#include <units/format.h>
#include <cassert> #include <cassert>
#include <iostream> #include <iostream>
#include <utility>
namespace { namespace {

View File

@@ -20,11 +20,13 @@
physical_quantities physical_quantities
*/ */
#include <units/generic/dimensionless.h>
#include <units/isq/dimensions/electric_current.h>
#include <units/isq/si/capacitance.h> #include <units/isq/si/capacitance.h>
#include <units/isq/si/resistance.h> #include <units/isq/si/resistance.h>
#include <units/isq/si/time.h> #include <units/isq/si/time.h>
#include <units/isq/si/voltage.h> #include <units/isq/si/voltage.h>
#include <units/math.h> #include <units/math.h> // IWYU pragma: keep
#include <units/quantity_io.h> #include <units/quantity_io.h>
#include <iostream> #include <iostream>

View File

@@ -24,7 +24,6 @@
#include <units/isq/si/time.h> #include <units/isq/si/time.h>
#include <units/isq/si/typographic/length.h> #include <units/isq/si/typographic/length.h>
#include <units/isq/si/us/length.h> #include <units/isq/si/us/length.h>
#include <units/isq/si/volume.h>
#include <units/quantity_io.h> #include <units/quantity_io.h>
#include <iostream> #include <iostream>

View File

@@ -15,10 +15,10 @@
along with this program. If not, see http://www.gnu.org/licenses./ along with this program. If not, see http://www.gnu.org/licenses./
*/ */
#include <units/isq/si/length.h>
#include <units/format.h> #include <units/format.h>
#include <units/quantity_io.h> #include <units/isq/si/length.h>
#include <iostream> #include <iostream>
#include <type_traits>
/* /*
get conversion factor from one dimensionally equivalent get conversion factor from one dimensionally equivalent

View File

@@ -20,9 +20,13 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE. // SOFTWARE.
#include <units/quantity_io.h> #include <units/base_dimension.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h>
#include <units/quantity_io.h>
#include <units/unit.h>
#include <iostream> #include <iostream>
#include <type_traits>
using namespace units; using namespace units;

View File

@@ -20,23 +20,24 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE. // SOFTWARE.
#include <units/format.h>
#include <units/generic/angle.h> #include <units/generic/angle.h>
#include <units/isq/si/length.h>
#include <units/isq/si/energy.h> #include <units/isq/si/energy.h>
#include <units/isq/si/torque.h> #include <units/isq/si/force.h>
#include <units/isq/si/length.h>
#include <units/isq/si/torque.h> // IWYU pragma: keep
#include <units/quantity_io.h> #include <units/quantity_io.h>
#include <iostream> #include <iostream>
using namespace units;
using namespace units::isq::si::literals;
int main() int main()
{ {
auto torque = 20.0_q_Nm_per_rad; using namespace units::references;
auto energy = 20.0_q_J; using namespace units::isq;
using namespace units::isq::si::references;
Angle auto angle = energy / torque; Torque auto torque = 20.0 * (N * m / rad);
Energy auto energy = 20.0 * J;
units::Angle auto angle = energy / torque;
std::cout << angle << '\n'; std::cout << angle << '\n';
} }

View File

@@ -20,21 +20,19 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE. // SOFTWARE.
#include <units/concepts.h>
#include <units/format.h> #include <units/format.h>
#include <units/isq/si/fps/density.h> #include <units/isq/si/fps/density.h>
#include <units/isq/si/fps/length.h> #include <units/isq/si/fps/length.h>
#include <units/isq/si/fps/mass.h> #include <units/isq/si/fps/mass.h>
#include <units/isq/si/fps/power.h> #include <units/isq/si/fps/power.h>
#include <units/isq/si/fps/speed.h> #include <units/isq/si/fps/speed.h>
#include <units/isq/si/fps/volume.h>
#include <units/isq/si/length.h> #include <units/isq/si/length.h>
#include <units/isq/si/mass.h> #include <units/isq/si/mass.h>
#include <units/isq/si/power.h> #include <units/isq/si/power.h>
#include <units/isq/si/speed.h> #include <units/isq/si/speed.h>
#include <units/isq/si/volume.h> #include <units/isq/si/volume.h>
#include <units/quantity.h>
#include <iostream> #include <iostream>
#include <string_view>
using namespace units::isq; using namespace units::isq;

View File

@@ -23,6 +23,7 @@
#include "geographic.h" #include "geographic.h"
#include <cmath> #include <cmath>
#include <numbers> #include <numbers>
#include <type_traits>
namespace { namespace {

View File

@@ -22,10 +22,15 @@
#pragma once #pragma once
#include <units/format.h>
#include <units/isq/si/length.h> #include <units/isq/si/length.h>
#include <units/quantity_kind.h> #include <units/quantity_kind.h>
#include <fmt/format.h>
#include <limits>
#include <ostream>
// IWYU pragma: begin_exports
#include <compare> #include <compare>
// IWYU pragma: end_exports
namespace geographic { namespace geographic {

View File

@@ -21,9 +21,13 @@
// SOFTWARE. // SOFTWARE.
#include "glide_computer.h" #include "glide_computer.h"
#include <numeric>
#include <string_view>
namespace glide_computer { namespace glide_computer {
using namespace units::isq;
task::legs task::make_legs(const waypoints& wpts) task::legs task::make_legs(const waypoints& wpts)
{ {
task::legs res; task::legs res;

View File

@@ -22,12 +22,24 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include "geographic.h" #include "geographic.h"
#include <units/format.h> #include <units/isq/si/length.h>
#include <units/math.h>
#include <units/isq/si/speed.h> #include <units/isq/si/speed.h>
#include <units/isq/si/international/length.h> #include <units/isq/si/time.h>
#include <units/quantity_point_kind.h> #include <units/quantity_point_kind.h>
// IWYU pragma: end_exports
#include <units/format.h>
#include <units/math.h> // IWYU pragma: keep
#include <algorithm>
#include <array>
#include <initializer_list>
#include <iterator>
#include <ostream>
#include <ranges>
#include <string> // IWYU pragma: keep
#include <vector>
// An example of a really simplified tactical glide computer // An example of a really simplified tactical glide computer
// Simplifications: // Simplifications:
@@ -43,9 +55,6 @@
// - no ground obstacles (i.e. mountains) to pass // - no ground obstacles (i.e. mountains) to pass
// - flight path exactly on a shortest possible line to destination // - flight path exactly on a shortest possible line to destination
using namespace units;
using namespace units::isq;
template<units::QuantityKind QK> template<units::QuantityKind QK>
struct fmt::formatter<QK> : formatter<typename QK::quantity_type> { struct fmt::formatter<QK> : formatter<typename QK::quantity_type> {
template<typename FormatContext> template<typename FormatContext>
@@ -57,8 +66,8 @@ struct fmt::formatter<QK> : formatter<typename QK::quantity_type> {
namespace glide_computer { namespace glide_computer {
template<QuantityKind QK1, QuantityKind QK2> template<units::QuantityKind QK1, units::QuantityKind QK2>
constexpr Dimensionless auto operator/(const QK1& lhs, const QK2& rhs) constexpr units::Dimensionless auto operator/(const QK1& lhs, const QK2& rhs)
requires(!units::QuantityKindRelatedTo<QK1, QK2>) && requires { lhs.common() / rhs.common();} requires(!units::QuantityKindRelatedTo<QK1, QK2>) && requires { lhs.common() / rhs.common();}
{ {
return lhs.common() / rhs.common(); return lhs.common() / rhs.common();
@@ -66,24 +75,24 @@ constexpr Dimensionless auto operator/(const QK1& lhs, const QK2& rhs)
// kinds // kinds
using horizontal_kind = geographic::horizontal_kind; using horizontal_kind = geographic::horizontal_kind;
struct vertical_kind : kind<vertical_kind, si::dim_length> {}; struct vertical_kind : units::kind<vertical_kind, units::isq::si::dim_length> {};
struct vertical_point_kind : point_kind<vertical_point_kind, vertical_kind> {}; struct vertical_point_kind : units::point_kind<vertical_point_kind, vertical_kind> {};
struct velocity_kind : derived_kind<velocity_kind, horizontal_kind, si::dim_speed> {}; struct velocity_kind : units::derived_kind<velocity_kind, horizontal_kind, units::isq::si::dim_speed> {};
struct rate_of_climb_kind : derived_kind<rate_of_climb_kind, vertical_kind, si::dim_speed> {}; struct rate_of_climb_kind : units::derived_kind<rate_of_climb_kind, vertical_kind, units::isq::si::dim_speed> {};
// https://en.wikipedia.org/wiki/Flight_planning#Units_of_measurement // https://en.wikipedia.org/wiki/Flight_planning#Units_of_measurement
// length // length
using distance = quantity_kind<horizontal_kind, si::kilometre>; using distance = units::quantity_kind<horizontal_kind, units::isq::si::kilometre>;
using height = quantity_kind<vertical_kind, si::metre>; using height = units::quantity_kind<vertical_kind, units::isq::si::metre>;
using altitude = quantity_point_kind<vertical_point_kind, si::metre>; using altitude = units::quantity_point_kind<vertical_point_kind, units::isq::si::metre>;
// time // time
using duration = si::time<si::second>; using duration = units::isq::si::time<units::isq::si::second>;
using timestamp = quantity_point<si::dim_time, si::second>; using timestamp = units::quantity_point<units::isq::si::dim_time, units::isq::si::second>;
// speed // speed
using velocity = quantity_kind<velocity_kind, si::kilometre_per_hour>; using velocity = units::quantity_kind<velocity_kind, units::isq::si::kilometre_per_hour>;
using rate_of_climb = quantity_kind<rate_of_climb_kind, si::metre_per_second>; using rate_of_climb = units::quantity_kind<rate_of_climb_kind, units::isq::si::metre_per_second>;
// text output // text output
template<class CharT, class Traits> template<class CharT, class Traits>
@@ -117,7 +126,7 @@ struct glider {
std::array<polar_point, 1> polar; std::array<polar_point, 1> polar;
}; };
constexpr Dimensionless auto glide_ratio(const glider::polar_point& polar) { return polar.v / -polar.climb; } constexpr units::Dimensionless auto glide_ratio(const glider::polar_point& polar) { return polar.v / -polar.climb; }
struct weather { struct weather {
height cloud_base; height cloud_base;
@@ -160,10 +169,10 @@ public:
distance get_length() const { return length_; } distance get_length() const { return length_; }
distance get_leg_dist_offset(size_t leg_index) const { return leg_index == 0 ? distance{} : leg_total_distances_[leg_index - 1]; } distance get_leg_dist_offset(std::size_t leg_index) const { return leg_index == 0 ? distance{} : leg_total_distances_[leg_index - 1]; }
size_t get_leg_index(distance dist) const std::size_t get_leg_index(distance dist) const
{ {
return static_cast<size_t>(std::ranges::distance(leg_total_distances_.cbegin(), std::ranges::lower_bound(leg_total_distances_, dist))); return static_cast<std::size_t>(std::ranges::distance(leg_total_distances_.cbegin(), std::ranges::lower_bound(leg_total_distances_, dist)));
} }
private: private:
@@ -188,7 +197,7 @@ struct aircraft_tow {
struct flight_point { struct flight_point {
timestamp ts; timestamp ts;
altitude alt; altitude alt;
size_t leg_idx = 0; std::size_t leg_idx = 0;
distance dist{}; distance dist{};
}; };
@@ -196,7 +205,7 @@ altitude terrain_level_alt(const task& t, const flight_point& pos);
constexpr height agl(altitude glider_alt, altitude terrain_level) { return glider_alt - terrain_level; } constexpr height agl(altitude glider_alt, altitude terrain_level) { return glider_alt - terrain_level; }
inline si::length<si::kilometre> length_3d(distance dist, height h) inline units::isq::si::length<units::isq::si::kilometre> length_3d(distance dist, height h)
{ {
// TODO support for hypot(q, q) // TODO support for hypot(q, q)
return sqrt(pow<2>(dist.common()) + pow<2>(h.common())); return sqrt(pow<2>(dist.common()) + pow<2>(h.common()));

View File

@@ -21,14 +21,25 @@
// SOFTWARE. // SOFTWARE.
#include "glide_computer.h" #include "glide_computer.h"
#include <units/bits/external/hacks.h>
#include <units/chrono.h> #include <units/chrono.h>
#include <units/generic/dimensionless.h>
#include <units/isq/si/international/length.h>
#include <fmt/format.h>
#include <array> #include <array>
#include <exception>
#include <iostream> #include <iostream>
#include <iterator>
#include <string>
#include <utility>
#include <vector>
namespace { namespace {
using namespace glide_computer; using namespace glide_computer;
using namespace units::isq;
auto get_gliders() auto get_gliders()
{ {
using namespace si::references; using namespace si::references;
@@ -74,7 +85,7 @@ void print(const R& gliders)
std::cout << "- Name: " << g.name << "\n"; std::cout << "- Name: " << g.name << "\n";
std::cout << "- Polar:\n"; std::cout << "- Polar:\n";
for (const auto& p : g.polar) for (const auto& p : g.polar)
fmt::print(" * {:%.4Q %q} @ {:%.1Q %q} -> {:%.1Q %q}\n", p.climb, p.v, quantity_cast<one>(glide_ratio(g.polar[0]))); fmt::print(" * {:%.4Q %q} @ {:%.1Q %q} -> {:%.1Q %q}\n", p.climb, p.v, quantity_cast<units::one>(glide_ratio(g.polar[0])));
std::cout << "\n"; std::cout << "\n";
} }
} }

View File

@@ -21,8 +21,11 @@
// SOFTWARE. // SOFTWARE.
#include <units/format.h> #include <units/format.h>
#include <units/isq/si/international/speed.h> #include <units/isq/si/international/length.h>
#include <units/isq/si/speed.h> #include <units/isq/si/international/speed.h> // IWYU pragma: keep
#include <units/isq/si/length.h>
#include <units/isq/si/speed.h> // IWYU pragma: keep
#include <units/isq/si/time.h>
#include <units/quantity_io.h> #include <units/quantity_io.h>
#include <iostream> #include <iostream>

View File

@@ -1,5 +1,29 @@
// The MIT License (MIT)
//
// Copyright (c) 2018 Mateusz Pusz
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#include <units/format.h> #include <units/format.h>
#include <units/isq/si/length.h>
#include <units/isq/si/speed.h> #include <units/isq/si/speed.h>
#include <units/isq/si/time.h>
#include <iostream> #include <iostream>
#include <array> #include <array>

View File

@@ -20,9 +20,10 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE. // SOFTWARE.
#include <units/isq/si/speed.h> #include <units/isq/si/energy.h> // IWYU pragma: keep
#include <units/isq/si/force.h> #include <units/isq/si/force.h>
#include <units/isq/si/energy.h> #include <units/isq/si/length.h>
#include <units/isq/si/speed.h> // IWYU pragma: keep
#include <units/format.h> #include <units/format.h>
#include <units/quantity_io.h> #include <units/quantity_io.h>
#include <linear_algebra.hpp> #include <linear_algebra.hpp>

View File

@@ -21,9 +21,12 @@
// SOFTWARE. // SOFTWARE.
#include <units/isq/si/acceleration.h> #include <units/isq/si/acceleration.h>
#include <units/isq/si/length.h>
#include <units/isq/si/speed.h>
#include <units/isq/si/time.h>
#include <units/quantity_io.h> #include <units/quantity_io.h>
#include <cmath> #include <cmath>
#include <compare> #include <exception>
#include <iostream> #include <iostream>
namespace { namespace {

View File

@@ -20,13 +20,15 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE. // SOFTWARE.
#include <units/isq/natural/constants.h> #include <units/isq/natural/natural.h>
#include <units/isq/si/energy.h> #include <units/isq/si/energy.h>
#include <units/isq/si/mass.h>
#include <units/isq/si/momentum.h> #include <units/isq/si/momentum.h>
#include <units/isq/si/speed.h> #include <units/isq/si/speed.h> // IWYU pragma: keep
#include <units/isq/si/constants.h> #include <units/isq/si/constants.h>
#include <units/math.h> #include <units/math.h>
#include <units/quantity_io.h> #include <units/quantity_io.h>
#include <exception>
#include <iostream> #include <iostream>
namespace { namespace {

View File

@@ -20,8 +20,11 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE. // SOFTWARE.
#include <units/isq/si/speed.h> #include <units/isq/si/length.h>
#include <units/isq/si/speed.h> // IWYU pragma: keep
#include <units/isq/si/time.h>
#include <units/quantity_io.h> #include <units/quantity_io.h>
#include <exception>
#include <iostream> #include <iostream>
namespace { namespace {

View File

@@ -31,8 +31,12 @@
#pragma warning (disable:4702) // C4702: unreachable code #pragma warning (disable:4702) // C4702: unreachable code
#endif //_MSC_VER #endif //_MSC_VER
// IWYU pragma: begin_exports
#include <fmt/format.h> #include <fmt/format.h>
#include <fmt/locale.h> #include <fmt/locale.h>
// IWYU pragma: end_exports
// #include <string>
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning (pop) #pragma warning (pop)

View File

@@ -23,9 +23,12 @@
#pragma once #pragma once
#include <units/bits/external/fixed_string_io.h>
#include <units/quantity.h> #include <units/quantity.h>
// IWYU pragma: begin_exports
#include <units/bits/external/fixed_string_io.h>
#include <sstream> #include <sstream>
// IWYU pragma: end_exports
namespace units { namespace units {

View File

@@ -22,8 +22,11 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/bits/external/fixed_string.h> #include <units/bits/external/fixed_string.h>
#include <units/bits/basic_concepts.h> #include <units/bits/basic_concepts.h>
// IWYU pragma: end_exports
#include <type_traits> #include <type_traits>
namespace units { namespace units {

View File

@@ -22,12 +22,15 @@
#pragma once #pragma once
#include <units/bits/external/downcasting.h>
#include <units/bits/external/fixed_string.h>
#include <units/bits/external/hacks.h> #include <units/bits/external/hacks.h>
// IWYU pragma: begin_exports
#include <units/bits/external/fixed_string.h>
#include <units/customization_points.h> #include <units/customization_points.h>
#include <units/ratio.h> #include <units/ratio.h>
#include <units/bits/external/type_traits.h> #include <units/bits/external/type_traits.h>
// IWYU pragma: end_exports
#include <cstdint> #include <cstdint>
#include <utility> #include <utility>

View File

@@ -22,6 +22,11 @@
#pragma once #pragma once
#include <units/bits/derived_dimension_base.h>
#include <units/bits/dim_consolidate.h>
#include <units/bits/external/downcasting.h>
#include <units/bits/external/hacks.h>
#include <units/bits/external/type_list.h>
#include <units/derived_dimension.h> #include <units/derived_dimension.h>
#include <units/unit.h> #include <units/unit.h>

View File

@@ -22,9 +22,12 @@
#pragma once #pragma once
#include <units/bits/external/hacks.h> // IWYU pragma: begin_exports
#include <cstdlib> #include <cstdlib>
#include <compare> #include <compare>
// IWYU pragma: end_exports
#include <cstddef>
// TODO use <algorithm> when moved to C++20 modules (parsing takes too long for each translation unit) // TODO use <algorithm> when moved to C++20 modules (parsing takes too long for each translation unit)

View File

@@ -22,7 +22,9 @@
#pragma once #pragma once
#include <units/bits/external/hacks.h>
#include <units/bits/external/type_traits.h> #include <units/bits/external/type_traits.h>
#include <cstddef>
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning (push) #pragma warning (push)

View File

@@ -23,8 +23,10 @@
#pragma once #pragma once
#include <units/customization_points.h> #include <units/customization_points.h>
// IWYU pragma: begin_exports
#include <units/isq/si/time.h> #include <units/isq/si/time.h>
#include <chrono> #include <chrono>
// IWYU pragma: end_exports
namespace units { namespace units {

View File

@@ -22,5 +22,7 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/bits/basic_concepts.h> #include <units/bits/basic_concepts.h>
#include <units/bits/quantity_of.h> #include <units/bits/quantity_of.h>
// IWYU pragma: end_exports

View File

@@ -29,7 +29,10 @@
#include <units/bits/dim_unpack.h> #include <units/bits/dim_unpack.h>
#include <units/bits/external/downcasting.h> #include <units/bits/external/downcasting.h>
#include <units/bits/external/type_list.h> #include <units/bits/external/type_list.h>
// IWYU pragma: begin_exports
#include <units/exponent.h> #include <units/exponent.h>
// IWYU pragma: end_exports
namespace units { namespace units {

View File

@@ -22,8 +22,13 @@
#pragma once #pragma once
#include <units/isq/si/prefixes.h> // IWYU pragma: begin_exports
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/prefixes.h>
namespace units { namespace units {
@@ -46,7 +51,7 @@ constexpr auto operator"" _q_rad(long double l) { return angle<radian, long doub
} // namespace literals } // namespace literals
inline namespace references { namespace references {
inline constexpr auto rad = reference<dim_angle<>, radian>{}; inline constexpr auto rad = reference<dim_angle<>, radian>{};

View File

@@ -22,6 +22,10 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/quantity_cast.h> #include <units/quantity_cast.h>
namespace units { namespace units {

View File

@@ -22,9 +22,17 @@
#pragma once #pragma once
#include <units/concepts.h> #include <units/bits/dimension_op.h>
#include <units/bits/external/hacks.h>
#include <units/generic/dimensionless.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/unit.h>
// IWYU pragma: begin_exports
#include <cmath> #include <cmath>
#include <cstdint>
// IWYU pragma: end_exports
#include <limits> #include <limits>
namespace units { namespace units {

View File

@@ -24,8 +24,10 @@
#include <units/bits/external/downcasting.h> #include <units/bits/external/downcasting.h>
#include <units/bits/basic_concepts.h> #include <units/bits/basic_concepts.h>
// IWYU pragma: begin_exports
#include <units/ratio.h> #include <units/ratio.h>
#include <units/symbol_text.h> #include <units/symbol_text.h>
// IWYU pragma: end_exports
namespace units { namespace units {

View File

@@ -24,12 +24,16 @@
#pragma once #pragma once
#include <units/bits/common_quantity.h> #include <units/bits/common_quantity.h>
#include <units/bits/pow.h>
#include <units/bits/unit_text.h>
#include <units/generic/dimensionless.h> #include <units/generic/dimensionless.h>
// IWYU pragma: begin_exports
#include <units/bits/unit_text.h>
#include <units/quantity_cast.h> #include <units/quantity_cast.h>
#include <units/reference.h> #include <units/ratio.h>
#include <compare> #include <compare>
// IWYU pragma: end_exports
#include <units/reference.h>
#include <utility> #include <utility>
namespace units { namespace units {

View File

@@ -23,8 +23,11 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/kind.h> #include <units/kind.h>
#include <units/quantity.h> #include <units/quantity.h>
// IWYU pragma: end_exports
#include <concepts> #include <concepts>
#include <type_traits> #include <type_traits>
#include <utility> #include <utility>

View File

@@ -23,8 +23,13 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/quantity.h> #include <units/quantity.h>
#include <compare> #include <compare>
// IWYU pragma: end_exports
#include <units/customization_points.h>
#include <units/generic/dimensionless.h>
namespace units { namespace units {

View File

@@ -23,9 +23,11 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/quantity_kind.h> #include <units/quantity_kind.h>
#include <units/quantity_point.h> #include <units/quantity_point.h>
#include <compare> #include <compare>
// IWYU pragma: end_exports
namespace units { namespace units {

View File

@@ -22,9 +22,9 @@
#pragma once #pragma once
#include <units/concepts.h>
#include <random> #include <random>
#include <functional> #include <functional>
#include <units/concepts.h>
namespace units { namespace units {

View File

@@ -22,15 +22,16 @@
#pragma once #pragma once
#include <units/bits/external/hacks.h> // IWYU pragma: begin_exports
#include <units/bits/math_concepts.h> #include <units/bits/math_concepts.h>
#include <units/bits/ratio_maths.h>
#include <units/bits/pow.h> #include <units/bits/pow.h>
#include <units/bits/ratio_maths.h>
#include <units/bits/root.h> #include <units/bits/root.h>
#include <cstdint> #include <cstdint>
// IWYU pragma: end_exports
#include <array>
#include <numeric> #include <numeric>
#include <type_traits>
#include <tuple>
#include <gsl/gsl-lite.hpp> #include <gsl/gsl-lite.hpp>
namespace units { namespace units {

View File

@@ -22,10 +22,14 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/bits/external/fixed_string.h> #include <units/bits/external/fixed_string.h>
#include <units/bits/external/hacks.h>
#include <gsl/gsl-lite.hpp>
#include <compare> #include <compare>
#include <cstdint>
#include <cstddef>
// IWYU pragma: end_exports
#include <gsl/gsl-lite.hpp>
namespace units { namespace units {

View File

@@ -23,15 +23,15 @@
#pragma once #pragma once
#include <units/bits/deduced_symbol_text.h> #include <units/bits/deduced_symbol_text.h>
#include <units/bits/deduced_unit.h>
#include <units/bits/external/downcasting.h> #include <units/bits/external/downcasting.h>
// IWYU pragma: begin_exports
#include <units/bits/deduced_unit.h>
#include <units/bits/external/fixed_string.h> #include <units/bits/external/fixed_string.h>
#include <units/bits/external/text_tools.h>
#include <units/bits/external/type_traits.h>
#include <units/derived_dimension.h>
#include <units/prefix.h> #include <units/prefix.h>
#include <units/ratio.h> #include <units/ratio.h>
#include <units/symbol_text.h> #include <units/symbol_text.h>
// IWYU pragma: end_exports
namespace units { namespace units {

View File

@@ -22,7 +22,9 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/iec80000/modulation_rate.h> #include <units/isq/iec80000/modulation_rate.h>
#include <units/isq/iec80000/storage_capacity.h> #include <units/isq/iec80000/storage_capacity.h>
#include <units/isq/iec80000/traffic_intensity.h> #include <units/isq/iec80000/traffic_intensity.h>
#include <units/isq/iec80000/transfer_rate.h> #include <units/isq/iec80000/transfer_rate.h>
// IWYU pragma: end_exports

View File

@@ -23,7 +23,14 @@
#pragma once #pragma once
#include <units/isq/si/frequency.h> #include <units/isq/si/frequency.h>
#include <units/isq/si/prefixes.h>
#include <units/unit.h>
// IWYU pragma: begin_exports
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
namespace units::isq::iec80000 { namespace units::isq::iec80000 {

View File

@@ -24,9 +24,14 @@
#include <units/base_dimension.h> #include <units/base_dimension.h>
#include <units/isq/iec80000/binary_prefixes.h> #include <units/isq/iec80000/binary_prefixes.h>
#include <units/isq/si/prefixes.h>
#include <units/unit.h>
// IWYU pragma: begin_exports
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h> #include <units/reference.h>
#include <units/unit.h> #include <units/symbol_text.h>
// IWYU pragma: end_exports
namespace units::isq::iec80000 { namespace units::isq::iec80000 {

View File

@@ -23,9 +23,13 @@
#pragma once #pragma once
#include <units/base_dimension.h> #include <units/base_dimension.h>
#include <units/unit.h>
// IWYU pragma: begin_exports
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h> #include <units/reference.h>
#include <units/unit.h> #include <units/symbol_text.h>
// IWYU pragma: end_exports
namespace units::isq::iec80000 { namespace units::isq::iec80000 {

View File

@@ -25,7 +25,12 @@
#include <units/derived_dimension.h> #include <units/derived_dimension.h>
#include <units/isq/iec80000/storage_capacity.h> #include <units/isq/iec80000/storage_capacity.h>
#include <units/isq/si/time.h> #include <units/isq/si/time.h>
#include <units/unit.h>
// IWYU pragma: begin_exports
#include <units/quantity.h> #include <units/quantity.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
namespace units::isq::iec80000 { namespace units::isq::iec80000 {

View File

@@ -22,7 +22,7 @@
#pragma once #pragma once
#include <units/isq/natural/bits/dimensions.h> #include <units/isq/natural/dimensions.h>
namespace units::isq::natural { namespace units::isq::natural {

View File

@@ -22,9 +22,11 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions.h> #include <units/isq/dimensions.h>
#include <units/isq/natural/bits/units.h> #include <units/isq/natural/units.h>
#include <units/quantity.h> #include <units/quantity.h>
// IWYU pragma: end_exports
namespace units::isq::natural { namespace units::isq::natural {

View File

@@ -22,9 +22,8 @@
#pragma once #pragma once
#define MP_UNITS_SYSTEM_NATURAL // IWYU pragma: begin_exports
#include "dimensions.h"
#include "bits/dimensions.h" #include "units.h"
#include "bits/units.h"
#include "constants.h" #include "constants.h"
// IWYU pragma: end_exports

View File

@@ -22,8 +22,12 @@
#pragma once #pragma once
#include <units/unit.h> // IWYU pragma: begin_exports
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/unit.h>
namespace units::isq::natural { namespace units::isq::natural {

View File

@@ -22,6 +22,7 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/absorbed_dose.h> #include <units/isq/dimensions/absorbed_dose.h>
#include <units/isq/dimensions/acceleration.h> #include <units/isq/dimensions/acceleration.h>
#include <units/isq/dimensions/amount_of_substance.h> #include <units/isq/dimensions/amount_of_substance.h>
@@ -68,3 +69,4 @@
#include <units/isq/dimensions/torque.h> #include <units/isq/dimensions/torque.h>
#include <units/isq/dimensions/voltage.h> #include <units/isq/dimensions/voltage.h>
#include <units/isq/dimensions/volume.h> #include <units/isq/dimensions/volume.h>
// IWYU pragma: end_exports

View File

@@ -22,9 +22,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/acceleration.h> #include <units/isq/dimensions/acceleration.h>
#include <units/isq/si/cgs/speed.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/cgs/speed.h>
#include <units/unit.h>
namespace units::isq::si::cgs { namespace units::isq::si::cgs {

View File

@@ -22,9 +22,16 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/area.h>
#include <units/isq/si/area.h> #include <units/isq/si/area.h>
#include <units/isq/si/cgs/length.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/cgs/length.h>
#include <units/unit.h>
namespace units::isq::si::cgs { namespace units::isq::si::cgs {

View File

@@ -22,6 +22,7 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/si/cgs/length.h> #include <units/isq/si/cgs/length.h>
#include <units/isq/si/cgs/mass.h> #include <units/isq/si/cgs/mass.h>
#include <units/isq/si/cgs/time.h> #include <units/isq/si/cgs/time.h>
@@ -33,3 +34,4 @@
#include <units/isq/si/cgs/power.h> #include <units/isq/si/cgs/power.h>
#include <units/isq/si/cgs/pressure.h> #include <units/isq/si/cgs/pressure.h>
#include <units/isq/si/cgs/speed.h> #include <units/isq/si/cgs/speed.h>
// IWYU pragma: end_exports

View File

@@ -22,10 +22,16 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/energy.h> #include <units/isq/dimensions/energy.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/cgs/force.h> #include <units/isq/si/cgs/force.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si::cgs { namespace units::isq::si::cgs {

View File

@@ -22,11 +22,17 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/force.h> #include <units/isq/dimensions/force.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/cgs/acceleration.h> #include <units/isq/si/cgs/acceleration.h>
#include <units/isq/si/cgs/mass.h> #include <units/isq/si/cgs/mass.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si::cgs { namespace units::isq::si::cgs {

View File

@@ -22,8 +22,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/length.h>
#include <units/isq/si/length.h> #include <units/isq/si/length.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/unit.h>
namespace units::isq::si::cgs { namespace units::isq::si::cgs {

View File

@@ -22,8 +22,15 @@
#pragma once #pragma once
#include <units/isq/si/mass.h> // IWYU pragma: begin_exports
#include <units/isq/dimensions/mass.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/mass.h>
#include <units/unit.h>
namespace units::isq::si::cgs { namespace units::isq::si::cgs {

View File

@@ -22,10 +22,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/power.h> #include <units/isq/dimensions/power.h>
#include <units/quantity.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/cgs/energy.h> #include <units/isq/si/cgs/energy.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si::cgs { namespace units::isq::si::cgs {

View File

@@ -22,11 +22,17 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/pressure.h> #include <units/isq/dimensions/pressure.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/cgs/area.h> #include <units/isq/si/cgs/area.h>
#include <units/isq/si/cgs/force.h> #include <units/isq/si/cgs/force.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si::cgs { namespace units::isq::si::cgs {

View File

@@ -22,10 +22,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/speed.h> #include <units/isq/dimensions/speed.h>
#include <units/quantity.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/cgs/length.h> #include <units/isq/si/cgs/length.h>
#include <units/isq/si/cgs/time.h> #include <units/isq/si/cgs/time.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si::cgs { namespace units::isq::si::cgs {

View File

@@ -22,8 +22,13 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/time.h>
#include <units/isq/si/time.h> #include <units/isq/si/time.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
namespace units::isq::si::cgs { namespace units::isq::si::cgs {

View File

@@ -22,9 +22,14 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/acceleration.h> #include <units/isq/dimensions/acceleration.h>
#include <units/isq/si/fps/speed.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/fps/speed.h>
#include <units/unit.h>
namespace units::isq::si::fps { namespace units::isq::si::fps {

View File

@@ -22,9 +22,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/area.h> #include <units/isq/dimensions/area.h>
#include <units/isq/si/fps/length.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/fps/length.h>
#include <units/unit.h>
namespace units::isq::si::fps { namespace units::isq::si::fps {

View File

@@ -22,10 +22,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/density.h> #include <units/isq/dimensions/density.h>
#include <units/quantity.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/fps/mass.h> #include <units/isq/si/fps/mass.h>
#include <units/isq/si/fps/length.h> #include <units/isq/si/fps/length.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si::fps { namespace units::isq::si::fps {

View File

@@ -22,10 +22,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/energy.h> #include <units/isq/dimensions/energy.h>
#include <units/quantity.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/fps/force.h> #include <units/isq/si/fps/force.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si::fps { namespace units::isq::si::fps {
@@ -37,12 +42,9 @@ struct dim_energy : isq::dim_energy<dim_energy, foot_poundal, dim_force, dim_len
// https://en.wikipedia.org/wiki/Foot-pound_(energy) // https://en.wikipedia.org/wiki/Foot-pound_(energy)
struct foot_pound_force : noble_deduced_unit<foot_pound_force, dim_energy, pound_force, foot> {}; struct foot_pound_force : noble_deduced_unit<foot_pound_force, dim_energy, pound_force, foot> {};
template<UnitOf<dim_energy> U, Representation Rep = double> template<UnitOf<dim_energy> U, Representation Rep = double>
using energy = quantity<dim_energy, U, Rep>; using energy = quantity<dim_energy, U, Rep>;
inline namespace literals { inline namespace literals {
// foot poundal // foot poundal
@@ -55,11 +57,4 @@ constexpr auto operator"" _q_ft_lbf(long double l) { return energy<foot_pound_fo
} // namespace literals } // namespace literals
namespace references {
inline constexpr auto ft_pdl = reference<dim_energy, foot_poundal>{};
inline constexpr auto ft_lbf = reference<dim_energy, foot_pound_force>{};
} // namespace references
} // namespace units::isq::si::fps } // namespace units::isq::si::fps

View File

@@ -22,11 +22,17 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/force.h> #include <units/isq/dimensions/force.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/fps/acceleration.h> #include <units/isq/si/fps/acceleration.h>
#include <units/isq/si/fps/mass.h> #include <units/isq/si/fps/mass.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si::fps { namespace units::isq::si::fps {

View File

@@ -22,6 +22,7 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/si/fps/length.h> #include <units/isq/si/fps/length.h>
#include <units/isq/si/fps/mass.h> #include <units/isq/si/fps/mass.h>
#include <units/isq/si/fps/time.h> #include <units/isq/si/fps/time.h>
@@ -35,3 +36,4 @@
#include <units/isq/si/fps/pressure.h> #include <units/isq/si/fps/pressure.h>
#include <units/isq/si/fps/speed.h> #include <units/isq/si/fps/speed.h>
#include <units/isq/si/fps/volume.h> #include <units/isq/si/fps/volume.h>
// IWYU pragma: end_exports

View File

@@ -22,8 +22,15 @@
#pragma once #pragma once
#include <units/isq/si/length.h> // IWYU pragma: begin_exports
#include <units/isq/dimensions/length.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/length.h>
#include <units/unit.h>
namespace units::isq::si::fps { namespace units::isq::si::fps {
@@ -47,8 +54,6 @@ struct mile : named_scaled_unit<mile, "mile", no_prefix, ratio(5'280), foot> {};
struct nautical_mile : named_scaled_unit<nautical_mile, "mi(naut)", no_prefix, ratio(2'000), yard> {}; struct nautical_mile : named_scaled_unit<nautical_mile, "mi(naut)", no_prefix, ratio(2'000), yard> {};
struct dim_length : isq::dim_length<foot> {}; struct dim_length : isq::dim_length<foot> {};
template<UnitOf<dim_length> U, Representation Rep = double> template<UnitOf<dim_length> U, Representation Rep = double>

View File

@@ -22,8 +22,15 @@
#pragma once #pragma once
#include <units/isq/si/mass.h> // IWYU pragma: begin_exports
#include <units/isq/dimensions/mass.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/mass.h>
#include <units/unit.h>
namespace units::isq::si::fps { namespace units::isq::si::fps {

View File

@@ -22,10 +22,16 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/power.h> #include <units/isq/dimensions/power.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/fps/energy.h> #include <units/isq/si/fps/energy.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si::fps { namespace units::isq::si::fps {

View File

@@ -22,11 +22,17 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/pressure.h> #include <units/isq/dimensions/pressure.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/fps/area.h> #include <units/isq/si/fps/area.h>
#include <units/isq/si/fps/force.h> #include <units/isq/si/fps/force.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si::fps { namespace units::isq::si::fps {

View File

@@ -22,10 +22,16 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/speed.h> #include <units/isq/dimensions/speed.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/fps/length.h> #include <units/isq/si/fps/length.h>
#include <units/isq/si/fps/time.h> #include <units/isq/si/fps/time.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si::fps { namespace units::isq::si::fps {

View File

@@ -22,8 +22,15 @@
#pragma once #pragma once
#include <units/isq/si/time.h> // IWYU pragma: begin_exports
#include <units/isq/dimensions/time.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/time.h>
#include <units/unit.h>
namespace units::isq::si::fps { namespace units::isq::si::fps {

View File

@@ -22,9 +22,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/volume.h> #include <units/isq/dimensions/volume.h>
#include <units/isq/si/fps/length.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/fps/length.h>
#include <units/unit.h>
namespace units::isq::si::fps { namespace units::isq::si::fps {

View File

@@ -22,4 +22,6 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/si/iau/length.h> #include <units/isq/si/iau/length.h>
// IWYU pragma: end_exports

View File

@@ -23,7 +23,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/length.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/length.h> #include <units/isq/si/length.h>
#include <units/unit.h>
namespace units::isq::si::iau { namespace units::isq::si::iau {

View File

@@ -22,4 +22,6 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/si/imperial/length.h> #include <units/isq/si/imperial/length.h>
// IWYU pragma: end_exports

View File

@@ -22,7 +22,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/length.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/international/length.h> #include <units/isq/si/international/length.h>
#include <units/unit.h>
namespace units::isq::si::imperial { namespace units::isq::si::imperial {

View File

@@ -22,8 +22,16 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/area.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/area.h> #include <units/isq/si/area.h>
#include <units/isq/si/international/length.h> #include <units/isq/si/international/length.h>
#include <units/unit.h>
namespace units::isq::si::international { namespace units::isq::si::international {

View File

@@ -22,8 +22,10 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/si/international/length.h> #include <units/isq/si/international/length.h>
#include <units/isq/si/international/area.h> #include <units/isq/si/international/area.h>
#include <units/isq/si/international/speed.h> #include <units/isq/si/international/speed.h>
#include <units/isq/si/international/volume.h> #include <units/isq/si/international/volume.h>
// IWYU pragma: end_exports

View File

@@ -23,7 +23,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/length.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/length.h> #include <units/isq/si/length.h>
#include <units/unit.h>
namespace units::isq::si::international { namespace units::isq::si::international {

View File

@@ -22,8 +22,15 @@
#pragma once #pragma once
#include <units/isq/si/speed.h> // IWYU pragma: begin_exports
#include <units/isq/dimensions/speed.h>
#include <units/quantity.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/international/length.h> #include <units/isq/si/international/length.h>
#include <units/isq/si/speed.h>
#include <units/unit.h>
namespace units::isq::si::international { namespace units::isq::si::international {

View File

@@ -22,8 +22,16 @@
#pragma once #pragma once
#include <units/isq/si/volume.h> // IWYU pragma: begin_exports
#include <units/isq/dimensions/volume.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/international/length.h> #include <units/isq/si/international/length.h>
#include <units/isq/si/volume.h>
#include <units/unit.h>
namespace units::isq::si::international { namespace units::isq::si::international {

View File

@@ -23,7 +23,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/length.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/length.h> #include <units/isq/si/length.h>
#include <units/unit.h>
namespace units::isq::si::typographic { namespace units::isq::si::typographic {

View File

@@ -22,4 +22,6 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/si/typographic/length.h> #include <units/isq/si/typographic/length.h>
// IWYU pragma: end_exports

View File

@@ -22,7 +22,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/length.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/length.h> #include <units/isq/si/length.h>
#include <units/unit.h>
namespace units::isq::si::us { namespace units::isq::si::us {

View File

@@ -22,4 +22,6 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/si/us/length.h> #include <units/isq/si/us/length.h>
// IWYU pragma: end_exports

View File

@@ -22,10 +22,16 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/absorbed_dose.h> #include <units/isq/dimensions/absorbed_dose.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/energy.h> #include <units/isq/si/energy.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si { namespace units::isq::si {

View File

@@ -22,9 +22,14 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/acceleration.h> #include <units/isq/dimensions/acceleration.h>
#include <units/isq/si/speed.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/symbol_text.h>
#include <units/unit.h>
// IWYU pragma: end_exports
#include <units/isq/si/speed.h>
namespace units::isq::si { namespace units::isq::si {

View File

@@ -22,10 +22,15 @@
#pragma once #pragma once
#include <units/reference.h> // IWYU pragma: begin_exports
#include <units/isq/dimensions/amount_of_substance.h> #include <units/isq/dimensions/amount_of_substance.h>
#include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/prefixes.h>
#include <units/unit.h>
namespace units::isq::si { namespace units::isq::si {

View File

@@ -22,11 +22,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/angular_velocity.h> #include <units/isq/dimensions/angular_velocity.h>
#include <units/quantity.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/generic/angle.h> #include <units/generic/angle.h>
#include <units/isq/si/time.h> #include <units/isq/si/time.h>
#include <units/unit.h>
#include <units/quantity.h>
namespace units::isq::si { namespace units::isq::si {

View File

@@ -22,9 +22,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/area.h> #include <units/isq/dimensions/area.h>
#include <units/isq/si/length.h>
#include <units/quantity.h> #include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/length.h>
#include <units/unit.h>
namespace units::isq::si { namespace units::isq::si {

View File

@@ -22,11 +22,17 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/capacitance.h> #include <units/isq/dimensions/capacitance.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/electric_charge.h> #include <units/isq/si/electric_charge.h>
#include <units/isq/si/voltage.h> #include <units/isq/si/voltage.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si { namespace units::isq::si {

View File

@@ -22,11 +22,17 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/catalytic_activity.h> #include <units/isq/dimensions/catalytic_activity.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/amount_of_substance.h> #include <units/isq/si/amount_of_substance.h>
#include <units/isq/si/time.h> #include <units/isq/si/time.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si { namespace units::isq::si {

View File

@@ -22,11 +22,16 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/charge_density.h> #include <units/isq/dimensions/charge_density.h>
#include <units/quantity.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/electric_charge.h> #include <units/isq/si/electric_charge.h>
#include <units/isq/si/length.h> #include <units/isq/si/length.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si { namespace units::isq::si {

View File

@@ -22,10 +22,15 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/concentration.h> #include <units/isq/dimensions/concentration.h>
#include <units/quantity.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/length.h> #include <units/isq/si/length.h>
#include <units/isq/si/amount_of_substance.h> #include <units/isq/si/amount_of_substance.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si { namespace units::isq::si {

View File

@@ -22,10 +22,16 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/conductance.h> #include <units/isq/dimensions/conductance.h>
#include <units/quantity.h>
#include <units/reference.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/resistance.h> #include <units/isq/si/resistance.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si { namespace units::isq::si {

View File

@@ -22,11 +22,16 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/current_density.h> #include <units/isq/dimensions/current_density.h>
#include <units/quantity.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/electric_current.h> #include <units/isq/si/electric_current.h>
#include <units/isq/si/length.h> #include <units/isq/si/length.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si { namespace units::isq::si {

View File

@@ -22,11 +22,16 @@
#pragma once #pragma once
// IWYU pragma: begin_exports
#include <units/isq/dimensions/density.h> #include <units/isq/dimensions/density.h>
#include <units/quantity.h>
#include <units/symbol_text.h>
// IWYU pragma: end_exports
#include <units/isq/si/mass.h> #include <units/isq/si/mass.h>
#include <units/isq/si/length.h> #include <units/isq/si/length.h>
#include <units/isq/si/prefixes.h> #include <units/isq/si/prefixes.h>
#include <units/quantity.h> #include <units/unit.h>
namespace units::isq::si { namespace units::isq::si {

Some files were not shown because too many files have changed in this diff Show More