42 Commits

Author SHA1 Message Date
35798a0f39 refactor: ostream.h header file made deprecated 2025-06-20 10:40:10 +02:00
50c05bddb3 refactor: format.h header file made deprecated 2025-06-20 09:06:49 +02:00
b870b85c25 feat: import std; support added
Resolves #595
2024-07-16 17:36:00 +02:00
e90cffcbda refactor: text formatting library header files are no longer included in compat_macros.h 2024-06-10 22:04:41 +02:00
f770057052 refactor: IWYU updates 2024-04-25 19:33:03 +02:00
8ea346be1c refactor: 💥 header files with the entire system definitions moved up in the directory tree 2024-04-25 16:34:11 +02:00
fa04e93687 feat: New formatting specification implemented 2024-04-18 22:29:09 +01:00
a9deec9d59 refactor: example applications refactored to a new formatting syntax 2024-01-23 21:49:17 +01:00
fb8552b1d9 refactor: core-fmt and core-ostream modules merged with core 2024-01-06 08:51:01 +01:00
0eaf6e2e56 refactor: modules support redesigned 2024-01-06 08:51:01 +01:00
7cb2099af5 feat: add module mp_units 2024-01-06 08:51:00 +01:00
ae92b49775 refactor: op[U] for quantity and quantity_point replaced with .in(U)
Resolves #469
2023-08-23 16:46:15 +02:00
52ce2b21f7 refactor: iostream.h renamed to ostream.h 2023-06-23 15:03:04 +02:00
ba1f58af76 refactor: All the macros refactored to have MP_UNITS_ prefix 2023-06-21 18:05:21 +02:00
03b58ee073 refactor: square and cubic are now functions (not variable templates) 2023-06-01 08:45:41 +02:00
561fbf7c93 merge branch master 2023-05-26 13:53:52 +02:00
7d9ae3ec31 refactor: mp_units subdirectory renamed to mp-units 2023-05-25 12:47:10 +02:00
859bc20fdc refactor: all examples refactored to use a simplified quantity creation 2023-02-08 21:47:48 -08:00
83aee04da0 refactor: quantity_io.h renamed to iostream.h 2023-02-03 16:57:48 +01:00
2cf736a1e6 feat: preventing possible future units crash when using namespace std;
Resolves #317
2022-12-29 20:18:48 +01:00
6b72dd39c1 refactor: headers with system definitions moved to _systems_ subdirectory 2022-12-29 19:27:54 +01:00
97da55edfa refactor: the rest of the systems refactored for V2 2022-12-29 18:59:10 +01:00
b982921d27 refactor: References are now guarded UNITS_REFERENCES with (ON by default) + examples duplicated to subdirectories
Now References can be disabled to meassure a compile time impact. Also the same examples are now provided in two subdirectories to be able to easily compare the pros and cons of every quantity construction technique.
2021-04-06 15:57:28 +02:00
1a5b4fc85e refactor: UDLs support switched off by default 2021-04-02 18:56:28 +02:00
37cfc53d1d refactor: IWYU applied to the source files
`alternative_namespaces` examples left out as I consider them a subject for removal in the nearest future.
2021-03-30 13:21:05 +02:00
bbbb77286c refactor: physical replaced with isq
Refers to #249
2021-03-16 12:03:25 +01:00
23720d055e refactor: Refactored the library file tree
Resolves #249
2021-03-16 09:32:28 +01:00
cff718301c refactor: quantity_io added 2020-12-28 15:18:36 +01:00
6e510b3a2a refactor: modules-like behavior for systems removed to improve broken compile-time
Reffers to #32
2020-09-13 00:11:02 +02:00
2a56438f1c refactor: file tree with systems defninitions refactored to limit ODR issues
Relates to #32 as with this commit we created something like modules for derived quantities
2020-09-11 18:11:25 +02:00
79558a6d72 refactor: systems defined in terms of SI moved under si namespace 2020-09-10 17:14:33 +02:00
9527b39005 refactor: 💥 q_* UDL renamed to _q_*
We had some fun exploring the STD UDLs for potential collisions,
we have learnt our lesson and know how to proceed.
Now is high time to start behaving and obeying C++ rules.
2020-09-09 19:20:35 +02:00
7e935a4108 Physical units put in the physical namespace (I am sorry) 2020-05-08 22:39:24 +02:00
6b7e5893d2 examples, alternative namespaces : Part2 of put alternative namespace definitions in local headers.
examples, clcpp_response,alternative_namespaces::clcpp_response : use fmt functions for showing precision of quantities
examples, alternative namespaces : combined the alternative namespace quantity typedefs in header files.
examples, alternative namespaces : add simple timer example
2020-03-21 18:23:05 +01:00
4b33c0f7c5 Examples with an alternate way to create quantities refactored
- examples modified to provide a unified library look-and-feel
- originals moved to a dedicated subdirectory for further reference and comparison
2020-03-01 14:44:45 +01:00
18620044c5 All UDLs are now prefixed with q_ 2020-02-17 15:56:06 +01:00
15e656aba6 clang-format on new examples 2020-01-14 12:50:30 +01:00
024f5a9c83 change const order
move in,ft,fathom,ft2,ft3,mph from us to international namespace
TODO distinguish units with different names for same values
2020-01-12 21:34:36 +01:00
6ba2362af9 example , clcpp_response : clean up comments 2020-01-12 21:34:36 +01:00
3b0e445b4c Remove sandbox.cpp from repo
Examples/clcpp_response.cpp : removed debug #defines
2020-01-12 21:34:36 +01:00
283e9d81a3 Split the various non-si length units into their own namespaces.
new namespaces are
international ( combination of us and imperial + Canada etc)
iau  (https://www.iau.org/
imperial ( old imperial units)
typographical ( for sizes of printing fonts etc)

These namespace are based on some research , mainly on wikipedia.
Look in src/include/units/physical/si/length.h to see links to see the references to documentation justifying the change.

Unfortunately there are 3 foot units for example, an old imperial version, an old us version and an international version, which is more recent and attempts to unify the two previous ones. All versions have slight changes in value, so I opted to use the international version
The main change in the layout is that inch,foot and yard have been moved from us to international.

With this modification, I also modified the physical/us/area.hpp, volume.hpp and volume.hpp headers to refer to the international units.
This may not be correct, but if the modified us::foot (rather than international foot is used as a basis for these units, then
there is a ratio integer overflow during compilation, probably due to taking 3rd power of a ratio. After this commit. I will try to show that on another branch.
2020-01-12 21:34:36 +01:00
868842bd46 Third party examples : add box example
Add si::density quantity header .
Add si::resistance quantity header.
Update si::capacitance header with mF, uF, nF, pF.
Update si::voltage header with mV, uV, nV,pV
Third party example : add capacitor time curve example
Add incoherent length units, TODO  move them out from si header.
Third party examples : add clcpp_response showing effectivenes of typed units for physical quantity library
Third party examples : add conversion factor example
Add third party examples to cmake

Third party examples : box example : Add air_density constant for clarity remove explicit this-> and tidy up.
Third party examples : in clcpp response example, change base unit from km to m for single type or all units example.
Third party examples : conversion_factor , add inline constexpr to units_str function.
Third party examples : box_example, change quantity::unit syntax to quantity::unit<> to allow generic(default double) value_type.
examples : remove examples from third party to main examples directory. Update cmake.
physical/si/resistance.hpp : remove underscores from kiloohm etc, UDL collision with 'R' so prefix with underscore
2020-01-12 21:34:36 +01:00