diff --git a/src/openvic-simulation/utility/Concepts.hpp b/src/openvic-simulation/core/template/Concepts.hpp similarity index 93% rename from src/openvic-simulation/utility/Concepts.hpp rename to src/openvic-simulation/core/template/Concepts.hpp index d8dbe67c..3f1209a2 100644 --- a/src/openvic-simulation/utility/Concepts.hpp +++ b/src/openvic-simulation/core/template/Concepts.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include #include @@ -81,8 +82,8 @@ namespace OpenVic { // This adds to capacity rather than size so that it can be used multiple times in a row. // If it added to size, it would only reserve enough for max(arguments...) template - concept reservable = requires(T& t, size_t size) { - { t.capacity() } -> std::same_as; + concept reservable = requires(T& t, std::size_t size) { + { t.capacity() } -> std::same_as; t.reserve(size); }; @@ -108,15 +109,14 @@ namespace OpenVic { }; template - concept has_index = requires { typename T::index_t; } - && derived_from_specialization_of - && requires { - static_cast( - static_cast().index)>>(std::declval().index) - ); - }; + concept has_index = requires { typename T::index_t; } && + derived_from_specialization_of && requires { + static_cast( + static_cast().index)>>(std::declval().index) + ); + }; - //helper to avoid error 'index_t': is not a member of T + // helper to avoid error 'index_t': is not a member of T template struct get_index_t { using type = std::size_t; diff --git a/src/openvic-simulation/dataloader/Dataloader.cpp b/src/openvic-simulation/dataloader/Dataloader.cpp index 9607260a..37036115 100644 --- a/src/openvic-simulation/dataloader/Dataloader.cpp +++ b/src/openvic-simulation/dataloader/Dataloader.cpp @@ -19,7 +19,7 @@ #include "openvic-simulation/utility/Logger.hpp" #include "openvic-simulation/utility/StringUtils.hpp" #include "openvic-simulation/utility/Containers.hpp" -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" using namespace OpenVic; using namespace OpenVic::NodeTools; diff --git a/src/openvic-simulation/dataloader/Dataloader.hpp b/src/openvic-simulation/dataloader/Dataloader.hpp index 54662d23..ef268f27 100644 --- a/src/openvic-simulation/dataloader/Dataloader.hpp +++ b/src/openvic-simulation/dataloader/Dataloader.hpp @@ -9,7 +9,7 @@ #include "openvic-simulation/dataloader/NodeTools.hpp" #include "openvic-simulation/dataloader/ModManager.hpp" #include "openvic-simulation/utility/Containers.hpp" -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" #include diff --git a/src/openvic-simulation/dataloader/NodeTools.hpp b/src/openvic-simulation/dataloader/NodeTools.hpp index 5886e8fa..a4982467 100644 --- a/src/openvic-simulation/dataloader/NodeTools.hpp +++ b/src/openvic-simulation/dataloader/NodeTools.hpp @@ -26,7 +26,7 @@ #include "openvic-simulation/utility/Getters.hpp" #include "openvic-simulation/utility/TslHelper.hpp" #include "openvic-simulation/utility/Containers.hpp" -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" #include diff --git a/src/openvic-simulation/dataloader/Vic2PathSearch_Windows.hpp b/src/openvic-simulation/dataloader/Vic2PathSearch_Windows.hpp index acd87366..c1c456c5 100644 --- a/src/openvic-simulation/dataloader/Vic2PathSearch_Windows.hpp +++ b/src/openvic-simulation/dataloader/Vic2PathSearch_Windows.hpp @@ -10,7 +10,7 @@ #include #include "openvic-simulation/utility/Containers.hpp" -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" namespace OpenVic::Windows { inline memory::wstring convert(std::string_view as) { diff --git a/src/openvic-simulation/modifier/ModifierSum.cpp b/src/openvic-simulation/modifier/ModifierSum.cpp index 03988fa6..1c4daba4 100644 --- a/src/openvic-simulation/modifier/ModifierSum.cpp +++ b/src/openvic-simulation/modifier/ModifierSum.cpp @@ -4,7 +4,7 @@ #include "openvic-simulation/country/CountryInstance.hpp" #include "openvic-simulation/map/ProvinceInstance.hpp" -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" using namespace OpenVic; diff --git a/src/openvic-simulation/types/Colour.hpp b/src/openvic-simulation/types/Colour.hpp index 87f1c2c8..c9386dc4 100644 --- a/src/openvic-simulation/types/Colour.hpp +++ b/src/openvic-simulation/types/Colour.hpp @@ -26,7 +26,7 @@ #include #include "openvic-simulation/types/StackString.hpp" -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" #include "openvic-simulation/utility/StringUtils.hpp" #include "openvic-simulation/utility/Typedefs.hpp" diff --git a/src/openvic-simulation/types/CowPtr.hpp b/src/openvic-simulation/types/CowPtr.hpp index 77bd2f82..ef9b4897 100644 --- a/src/openvic-simulation/types/CowPtr.hpp +++ b/src/openvic-simulation/types/CowPtr.hpp @@ -7,7 +7,7 @@ #include #include -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" #include "openvic-simulation/utility/Typedefs.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/types/CowVector.hpp b/src/openvic-simulation/types/CowVector.hpp index edd7fd6f..1455c7df 100644 --- a/src/openvic-simulation/types/CowVector.hpp +++ b/src/openvic-simulation/types/CowVector.hpp @@ -14,7 +14,7 @@ #include "openvic-simulation/types/BasicIterator.hpp" #include "openvic-simulation/utility/Allocator.hpp" #include "openvic-simulation/utility/Compare.hpp" -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" #include "openvic-simulation/utility/Typedefs.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/types/FixedVector.hpp b/src/openvic-simulation/types/FixedVector.hpp index 6b221e26..38324b2e 100644 --- a/src/openvic-simulation/types/FixedVector.hpp +++ b/src/openvic-simulation/types/FixedVector.hpp @@ -5,7 +5,7 @@ #include #include -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" #include "openvic-simulation/utility/Typedefs.hpp" namespace OpenVic::_detail { diff --git a/src/openvic-simulation/types/HasIdentifier.hpp b/src/openvic-simulation/types/HasIdentifier.hpp index c2738b55..4270880e 100644 --- a/src/openvic-simulation/types/HasIdentifier.hpp +++ b/src/openvic-simulation/types/HasIdentifier.hpp @@ -8,7 +8,7 @@ #include #include "openvic-simulation/types/Colour.hpp" -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" #include "openvic-simulation/utility/Getters.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/types/HasIndex.hpp b/src/openvic-simulation/types/HasIndex.hpp index ec3d741f..1fcbc731 100644 --- a/src/openvic-simulation/types/HasIndex.hpp +++ b/src/openvic-simulation/types/HasIndex.hpp @@ -2,7 +2,7 @@ #include -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" namespace OpenVic { template IndexT> diff --git a/src/openvic-simulation/types/IdentifierRegistry.hpp b/src/openvic-simulation/types/IdentifierRegistry.hpp index 99d2c73e..577bd61e 100644 --- a/src/openvic-simulation/types/IdentifierRegistry.hpp +++ b/src/openvic-simulation/types/IdentifierRegistry.hpp @@ -5,7 +5,7 @@ #include "openvic-simulation/dataloader/NodeTools.hpp" #include "openvic-simulation/types/fixed_point/FixedPointMap.hpp" -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" #include "openvic-simulation/utility/Getters.hpp" #include "openvic-simulation/utility/Logger.hpp" diff --git a/src/openvic-simulation/types/IndexedFlatMap.hpp b/src/openvic-simulation/types/IndexedFlatMap.hpp index 104075a0..04ca32af 100644 --- a/src/openvic-simulation/types/IndexedFlatMap.hpp +++ b/src/openvic-simulation/types/IndexedFlatMap.hpp @@ -11,7 +11,7 @@ #include #include "openvic-simulation/types/FixedVector.hpp" -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" #include "openvic-simulation/utility/Getters.hpp" #include "openvic-simulation/utility/ForwardableSpan.hpp" #include "openvic-simulation/utility/Logger.hpp" diff --git a/src/openvic-simulation/types/OrderedContainers.hpp b/src/openvic-simulation/types/OrderedContainers.hpp index 2384887c..2aef44e0 100644 --- a/src/openvic-simulation/types/OrderedContainers.hpp +++ b/src/openvic-simulation/types/OrderedContainers.hpp @@ -6,7 +6,7 @@ #include #include -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" #include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/utility/Deque.hpp" #include "openvic-simulation/utility/StringUtils.hpp" diff --git a/src/openvic-simulation/types/OrderedContainersMath.hpp b/src/openvic-simulation/types/OrderedContainersMath.hpp index adf8e568..5527ba03 100644 --- a/src/openvic-simulation/types/OrderedContainersMath.hpp +++ b/src/openvic-simulation/types/OrderedContainersMath.hpp @@ -4,7 +4,7 @@ #include #include "openvic-simulation/types/OrderedContainers.hpp" -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" namespace OpenVic { template diff --git a/src/openvic-simulation/types/TypedSpan.hpp b/src/openvic-simulation/types/TypedSpan.hpp index f59730e8..68953ff5 100644 --- a/src/openvic-simulation/types/TypedSpan.hpp +++ b/src/openvic-simulation/types/TypedSpan.hpp @@ -4,7 +4,7 @@ #include -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" #include "openvic-simulation/utility/ForwardableSpan.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/types/Vector.hpp b/src/openvic-simulation/types/Vector.hpp index b60adc06..00b833ad 100644 --- a/src/openvic-simulation/types/Vector.hpp +++ b/src/openvic-simulation/types/Vector.hpp @@ -7,7 +7,7 @@ #include "openvic-simulation/types/BasicIterator.hpp" // IWYU pragma: keep #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" -#include "openvic-simulation/utility/Concepts.hpp" // IWYU pragma: keep +#include "openvic-simulation/core/template/Concepts.hpp" // IWYU pragma: keep #include "openvic-simulation/utility/Math.hpp" // IWYU pragma: keep #include "openvic-simulation/utility/Typedefs.hpp" // IWYU pragma: keep diff --git a/src/openvic-simulation/utility/Allocator.hpp b/src/openvic-simulation/utility/Allocator.hpp index 5408ca02..47474353 100644 --- a/src/openvic-simulation/utility/Allocator.hpp +++ b/src/openvic-simulation/utility/Allocator.hpp @@ -2,7 +2,7 @@ #include -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" namespace OpenVic { template diff --git a/src/openvic-simulation/utility/Compare.hpp b/src/openvic-simulation/utility/Compare.hpp index 57da83fe..ffb3835e 100644 --- a/src/openvic-simulation/utility/Compare.hpp +++ b/src/openvic-simulation/utility/Compare.hpp @@ -3,7 +3,7 @@ #include #include -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" namespace OpenVic { [[nodiscard]] inline constexpr auto three_way_compare(auto&& left, auto&& right) diff --git a/src/openvic-simulation/utility/Deque.hpp b/src/openvic-simulation/utility/Deque.hpp index 92c499c0..95f80dcd 100644 --- a/src/openvic-simulation/utility/Deque.hpp +++ b/src/openvic-simulation/utility/Deque.hpp @@ -1909,7 +1909,7 @@ namespace OpenVic::utility { } #endif -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" namespace OpenVic { template diff --git a/src/openvic-simulation/utility/reactive/MutableState.hpp b/src/openvic-simulation/utility/reactive/MutableState.hpp index b1548e71..302dea2a 100644 --- a/src/openvic-simulation/utility/reactive/MutableState.hpp +++ b/src/openvic-simulation/utility/reactive/MutableState.hpp @@ -1,7 +1,7 @@ #pragma once #include "openvic-simulation/types/Signal.hpp" -#include "openvic-simulation/utility/Concepts.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" #include "openvic-simulation/utility/reactive/DependencyTracker.hpp" namespace OpenVic {