diff --git a/src/headless/main.cpp b/src/headless/main.cpp index 8122eba76..e903f13dd 100644 --- a/src/headless/main.cpp +++ b/src/headless/main.cpp @@ -12,6 +12,8 @@ #include #include +#include +#include #include #include #include @@ -20,9 +22,7 @@ #include #include #include -#include #include -#include using namespace OpenVic; @@ -37,7 +37,7 @@ inline static void print_memory_usage( // #else spdlog::source_loc {}, #endif - spdlog::level::info, "{} Memory Usage: {} Bytes", prefix, OpenVic::utility::MemoryTracker::get_memory_usage() + spdlog::level::info, "{} Memory Usage: {} Bytes", prefix, OpenVic::memory::MemoryTracker::get_memory_usage() ); #endif #endif @@ -365,7 +365,7 @@ static bool run_headless(fs::path const& root, memory::vector& m SPDLOG_INFO("===== Ending game session... ====="); ret &= game_manager.end_game_session(); - SPDLOG_INFO("Max Memory Usage: {} Bytes", OpenVic::utility::MemoryTracker::get_max_memory_usage()); + SPDLOG_INFO("Max Memory Usage: {} Bytes", OpenVic::memory::MemoryTracker::get_max_memory_usage()); return ret; } diff --git a/src/openvic-simulation/GameManager.cpp b/src/openvic-simulation/GameManager.cpp index a4d0594be..e73002310 100644 --- a/src/openvic-simulation/GameManager.cpp +++ b/src/openvic-simulation/GameManager.cpp @@ -9,8 +9,9 @@ #include +#include "openvic-simulation/core/memory/String.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/dataloader/Dataloader.hpp" -#include "openvic-simulation/types/OrderedContainers.hpp" #include "openvic-simulation/utility/Logger.hpp" using namespace OpenVic; diff --git a/src/openvic-simulation/GameManager.hpp b/src/openvic-simulation/GameManager.hpp index 974db0bcd..2ee594f1c 100644 --- a/src/openvic-simulation/GameManager.hpp +++ b/src/openvic-simulation/GameManager.hpp @@ -3,13 +3,13 @@ #include #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/DefinitionManager.hpp" #include "openvic-simulation/InstanceManager.hpp" #include "openvic-simulation/dataloader/ModManager.hpp" #include "openvic-simulation/dataloader/Dataloader.hpp" #include "openvic-simulation/misc/GameRulesManager.hpp" #include "openvic-simulation/gen/commit_info.gen.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include diff --git a/src/openvic-simulation/InstanceManager.hpp b/src/openvic-simulation/InstanceManager.hpp index 311727432..79efa92a2 100644 --- a/src/openvic-simulation/InstanceManager.hpp +++ b/src/openvic-simulation/InstanceManager.hpp @@ -4,6 +4,7 @@ #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/console/ConsoleInstance.hpp" #include "openvic-simulation/country/CountryInstanceManager.hpp" #include "openvic-simulation/country/CountryInstanceDeps.hpp" @@ -23,7 +24,6 @@ #include "openvic-simulation/types/Date.hpp" #include "openvic-simulation/types/FlagStrings.hpp" #include "openvic-simulation/utility/ThreadPool.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/console/ConsoleInstance.cpp b/src/openvic-simulation/console/ConsoleInstance.cpp index 6f0393770..b280c479f 100644 --- a/src/openvic-simulation/console/ConsoleInstance.cpp +++ b/src/openvic-simulation/console/ConsoleInstance.cpp @@ -9,6 +9,8 @@ #include +#include "openvic-simulation/core/memory/String.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/DefinitionManager.hpp" #include "openvic-simulation/InstanceManager.hpp" #include "openvic-simulation/core/error/ErrorMacros.hpp" @@ -21,7 +23,6 @@ #include "openvic-simulation/research/Technology.hpp" #include "openvic-simulation/types/Colour.hpp" #include "openvic-simulation/types/Date.hpp" -#include "openvic-simulation/utility/Containers.hpp" using namespace OpenVic; using namespace std::string_view_literals; diff --git a/src/openvic-simulation/console/ConsoleInstance.hpp b/src/openvic-simulation/console/ConsoleInstance.hpp index a3ebcca37..f2791eb3b 100644 --- a/src/openvic-simulation/console/ConsoleInstance.hpp +++ b/src/openvic-simulation/console/ConsoleInstance.hpp @@ -7,10 +7,11 @@ #include #include +#include "openvic-simulation/core/memory/Formatting.hpp" +#include "openvic-simulation/core/memory/String.hpp" #include "openvic-simulation/types/Colour.hpp" #include "openvic-simulation/types/Date.hpp" #include "openvic-simulation/types/OrderedContainers.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/utility/Getters.hpp" #include diff --git a/src/openvic-simulation/core/error/ErrorSet.hpp b/src/openvic-simulation/core/error/ErrorSet.hpp index 33292328b..8fb2d66af 100644 --- a/src/openvic-simulation/core/error/ErrorSet.hpp +++ b/src/openvic-simulation/core/error/ErrorSet.hpp @@ -4,7 +4,7 @@ #include #include "openvic-simulation/core/error/Error.hpp" -#include "openvic-simulation/utility/Containers.hpp" +#include "openvic-simulation/core/memory/String.hpp" namespace OpenVic { // Set of all reported errors, if empty operates as if set to Error::OK diff --git a/src/openvic-simulation/core/io/BMP.cpp b/src/openvic-simulation/core/io/BMP.cpp index 5e58f7329..54aa19c94 100644 --- a/src/openvic-simulation/core/io/BMP.cpp +++ b/src/openvic-simulation/core/io/BMP.cpp @@ -6,7 +6,6 @@ #include #include "openvic-simulation/types/OrderedContainers.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/utility/Logger.hpp" using namespace OpenVic; diff --git a/src/openvic-simulation/core/io/BMP.hpp b/src/openvic-simulation/core/io/BMP.hpp index 98b1a2f4b..c1ac71c4e 100644 --- a/src/openvic-simulation/core/io/BMP.hpp +++ b/src/openvic-simulation/core/io/BMP.hpp @@ -4,7 +4,7 @@ #include #include -#include "openvic-simulation/utility/Containers.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" namespace OpenVic { namespace fs = std::filesystem; diff --git a/src/openvic-simulation/core/memory/Colony.hpp b/src/openvic-simulation/core/memory/Colony.hpp new file mode 100644 index 000000000..4c43400ae --- /dev/null +++ b/src/openvic-simulation/core/memory/Colony.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +#include +#include + +#include "openvic-simulation/core/memory/MemoryTracker.hpp" + +namespace OpenVic::memory { + template + using colony = plf::colony>>; +} \ No newline at end of file diff --git a/src/openvic-simulation/core/memory/CowPtr.hpp b/src/openvic-simulation/core/memory/CowPtr.hpp new file mode 100644 index 000000000..ccd906349 --- /dev/null +++ b/src/openvic-simulation/core/memory/CowPtr.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include +#include + +#include "openvic-simulation/core/memory/MemoryTracker.hpp" +#include "openvic-simulation/types/CowPtr.hpp" + +namespace OpenVic::memory { + template + using cow_ptr = ::OpenVic::cow_ptr< + T, + foonathan::memory::std_allocator> + >; +} \ No newline at end of file diff --git a/src/openvic-simulation/core/memory/CowVector.hpp b/src/openvic-simulation/core/memory/CowVector.hpp new file mode 100644 index 000000000..8ddab3c17 --- /dev/null +++ b/src/openvic-simulation/core/memory/CowVector.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include +#include + +#include "openvic-simulation/core/memory/MemoryTracker.hpp" +#include "openvic-simulation/types/CowVector.hpp" + +namespace OpenVic::memory { + template + using cow_vector = ::OpenVic::cow_vector< + T, + foonathan::memory::std_allocator> + >; +} \ No newline at end of file diff --git a/src/openvic-simulation/core/memory/Deque.hpp b/src/openvic-simulation/core/memory/Deque.hpp new file mode 100644 index 000000000..106b25cde --- /dev/null +++ b/src/openvic-simulation/core/memory/Deque.hpp @@ -0,0 +1,29 @@ +#pragma once + +#include + +#include +#include + +#include "openvic-simulation/core/memory/MemoryTracker.hpp" +#include "openvic-simulation/core/portable/Deque.hpp" + +namespace OpenVic::memory { + template + FOONATHAN_ALIAS_TEMPLATE( + deque, + OpenVic::utility::deque< + T, + foonathan::memory::std_allocator> + > + ); + + template + FOONATHAN_ALIAS_TEMPLATE( + deque_scoped_alloc, + OpenVic::utility::deque< + T, + std::scoped_allocator_adaptor>> + > + ); +} \ No newline at end of file diff --git a/src/openvic-simulation/core/memory/Formatting.hpp b/src/openvic-simulation/core/memory/Formatting.hpp new file mode 100644 index 000000000..60455099c --- /dev/null +++ b/src/openvic-simulation/core/memory/Formatting.hpp @@ -0,0 +1,34 @@ +#pragma once + +#include +#include + +#include + +#include "openvic-simulation/core/memory/MemoryTracker.hpp" +#include "openvic-simulation/core/memory/String.hpp" + +namespace OpenVic::memory { + namespace fmt { + template + using basic_memory_buffer = ::fmt::basic_memory_buffer< + T, + ::fmt::inline_buffer_size, + foonathan::memory::std_allocator< + T, + OpenVic::memory::tracker + > + >; + + inline static memory::string vformat(::fmt::string_view fmt, ::fmt::format_args args) { + memory::fmt::basic_memory_buffer buf {}; + ::fmt::vformat_to(std::back_inserter(buf), fmt, args); + return memory::string(buf.data(), buf.size()); + } + + template + memory::string format(::fmt::string_view fmt, const Args&... args) { + return memory::fmt::vformat(fmt, ::fmt::make_format_args(args...)); + } + } +} diff --git a/src/openvic-simulation/utility/MemoryTracker.hpp b/src/openvic-simulation/core/memory/MemoryTracker.hpp similarity index 93% rename from src/openvic-simulation/utility/MemoryTracker.hpp rename to src/openvic-simulation/core/memory/MemoryTracker.hpp index 69e504245..b96942e75 100644 --- a/src/openvic-simulation/utility/MemoryTracker.hpp +++ b/src/openvic-simulation/core/memory/MemoryTracker.hpp @@ -5,7 +5,7 @@ #include -namespace OpenVic::utility { +namespace OpenVic::memory { struct MemoryTracker { void on_node_allocation(void* mem, std::size_t size, std::size_t) { uint64_t new_mem_usage = _memory_usage.fetch_add(size, std::memory_order_acq_rel) + size; @@ -53,7 +53,7 @@ namespace OpenVic::memory { template using tracker = #ifdef DEBUG_ENABLED - foonathan::memory::tracked_allocator + foonathan::memory::tracked_allocator #else RawAllocator #endif diff --git a/src/openvic-simulation/core/memory/Queue.hpp b/src/openvic-simulation/core/memory/Queue.hpp new file mode 100644 index 000000000..a75272c24 --- /dev/null +++ b/src/openvic-simulation/core/memory/Queue.hpp @@ -0,0 +1,10 @@ +#pragma once + +#include + +#include "openvic-simulation/core/memory/Deque.hpp" + +namespace OpenVic::memory { + template> + using queue = std::queue; +} \ No newline at end of file diff --git a/src/openvic-simulation/core/memory/SmartPtr.hpp b/src/openvic-simulation/core/memory/SmartPtr.hpp new file mode 100644 index 000000000..eab0157de --- /dev/null +++ b/src/openvic-simulation/core/memory/SmartPtr.hpp @@ -0,0 +1,140 @@ +#pragma once + +#include +#include +#include + +#include +#include + +#include "openvic-simulation/core/memory/make_tracked_allocator.hpp" +#include "openvic-simulation/core/memory/MemoryTracker.hpp" + +namespace OpenVic::memory { + template + struct will_optimize_deleter_for : std::false_type {}; + + template<> + struct will_optimize_deleter_for : std::true_type {}; + + template<> + struct will_optimize_deleter_for : std::true_type {}; + + template<> + struct will_optimize_deleter_for : std::true_type {}; + + +#ifdef DEBUG_ENABLED + template + using unique_ptr = foonathan::memory::unique_ptr>; + + template + using unique_base_ptr = foonathan::memory::unique_base_ptr>; + + template + requires(!std::is_array_v) + unique_ptr> allocate_unique(RawAllocator&& alloc, Args&&... args) { + return foonathan::memory::allocate_unique( + OpenVic::memory::make_tracked_allocator(std::forward(alloc)), std::forward(args)... + ); + } + + template + requires(std::is_array_v) + unique_ptr> allocate_unique(RawAllocator&& alloc, std::size_t size) { + return foonathan::memory::allocate_unique>( + OpenVic::memory::make_tracked_allocator(std::forward(alloc)), size + ); + } +#else + template + using unique_ptr = std::conditional_t< + will_optimize_deleter_for::value, std::unique_ptr, + foonathan::memory::unique_ptr>>; + + template + using unique_base_ptr = std::conditional_t< + will_optimize_deleter_for::value, std::unique_ptr, + foonathan::memory::unique_base_ptr>>; + + template + requires(!std::is_array_v) + unique_ptr> allocate_unique(RawAllocator&& alloc, Args&&... args) { + if constexpr (will_optimize_deleter_for::value) { + return std::make_unique(std::forward(args)...); + } else { + return foonathan::memory::allocate_unique( + OpenVic::memory::make_tracked_allocator(std::forward(alloc)), std::forward(args)... + ); + } + } + + template + requires(std::is_array_v) + unique_ptr> allocate_unique(RawAllocator&& alloc, std::size_t size) { + if constexpr (will_optimize_deleter_for::value) { + return std::make_unique(size); + } else { + return foonathan::memory::allocate_unique>( + OpenVic::memory::make_tracked_allocator(std::forward(alloc)), size + ); + } + } +#endif + + template + requires(!std::is_array_v) + static inline unique_ptr make_unique(Args&&... args) { + return allocate_unique(RawAllocator {}, std::forward(args)...); + } + + template + requires(std::is_unbounded_array_v) + static inline unique_ptr make_unique(size_t n) { + return allocate_unique( + OpenVic::memory::make_tracked_allocator(RawAllocator {}), + n + ); + } + + template + requires(!std::is_array_v) + static inline unique_ptr make_unique_for_overwrite() { + using raw_ptr = std::unique_ptr>>; + + tracker alloc = OpenVic::memory::make_tracked_allocator(RawAllocator {}); + auto memory = alloc.allocate_node(sizeof(T), alignof(T)); + // raw_ptr deallocates memory in case of constructor exception + raw_ptr result(static_cast(memory), { alloc }); + // pass ownership to return value using a deleter that calls destructor + return { result.release(), { alloc } }; + } + + template + requires(std::is_unbounded_array_v) + static inline unique_ptr make_unique_for_overwrite(size_t size) { + using raw_ptr = std::unique_ptr>>; + + tracker alloc = OpenVic::memory::make_tracked_allocator(RawAllocator {}); + auto memory = alloc.allocate_array(size, sizeof(T), alignof(T)); + // raw_ptr deallocates memory in case of constructor exception + raw_ptr result(static_cast(memory), { alloc, size }); + // pass ownership to return value using a deleter that calls destructor + return { result.release(), { alloc, size } }; + } + + template + std::shared_ptr allocate_shared(RawAllocator&& alloc, Args&&... args) { + return foonathan::memory::allocate_shared( + OpenVic::memory::make_tracked_allocator( + std::forward(alloc) + ), + std::forward(args)... + ); + } + + template + static inline std::shared_ptr make_shared(Args&&... args) { + return allocate_shared(RawAllocator {}, std::forward(args)...); + } +} \ No newline at end of file diff --git a/src/openvic-simulation/core/memory/Stack.hpp b/src/openvic-simulation/core/memory/Stack.hpp new file mode 100644 index 000000000..2411b7094 --- /dev/null +++ b/src/openvic-simulation/core/memory/Stack.hpp @@ -0,0 +1,10 @@ +#pragma once + +#include + +#include "openvic-simulation/core/memory/Deque.hpp" + +namespace OpenVic::memory { + template> + using stack = std::stack; +} \ No newline at end of file diff --git a/src/openvic-simulation/core/memory/String.hpp b/src/openvic-simulation/core/memory/String.hpp new file mode 100644 index 000000000..d53ecb205 --- /dev/null +++ b/src/openvic-simulation/core/memory/String.hpp @@ -0,0 +1,27 @@ +#pragma once + +#include + +#include +#include + +#include "openvic-simulation/core/memory/MemoryTracker.hpp" + +namespace OpenVic::memory { + template + using basic_string = std::basic_string< + CharT, + std::char_traits, + foonathan::memory::std_allocator> + >; + + template + using string_alloc = basic_string; + + using string = string_alloc<>; + + template + using wstring_alloc = basic_string; + + using wstring = wstring_alloc<>; +} \ No newline at end of file diff --git a/src/openvic-simulation/core/memory/StringStream.hpp b/src/openvic-simulation/core/memory/StringStream.hpp new file mode 100644 index 000000000..3e537e657 --- /dev/null +++ b/src/openvic-simulation/core/memory/StringStream.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include +#include + +#include +#include + +#include "openvic-simulation/core/memory/MemoryTracker.hpp" + +namespace OpenVic::memory { + template, class RawAllocator = foonathan::memory::default_allocator> + using basic_stringstream = std::basic_stringstream< + CharT, + CharTraits, + foonathan::memory::std_allocator> + >; + + template + using stringstream_alloc = basic_stringstream, RawAllocator>; + template + using wstringstream_alloc = basic_stringstream, RawAllocator>; + + using stringstream = stringstream_alloc<>; + using wstringstream = wstringstream_alloc<>; +} \ No newline at end of file diff --git a/src/openvic-simulation/core/memory/Vector.hpp b/src/openvic-simulation/core/memory/Vector.hpp new file mode 100644 index 000000000..cbf9cdaf2 --- /dev/null +++ b/src/openvic-simulation/core/memory/Vector.hpp @@ -0,0 +1,11 @@ +#pragma once + +#include +#include + +#include "openvic-simulation/core/memory/MemoryTracker.hpp" + +namespace OpenVic::memory { + template + using vector = foonathan::memory::vector>; +} \ No newline at end of file diff --git a/src/openvic-simulation/core/memory/allocators/AllocatorReference.hpp b/src/openvic-simulation/core/memory/allocators/AllocatorReference.hpp new file mode 100644 index 000000000..59481f8a7 --- /dev/null +++ b/src/openvic-simulation/core/memory/allocators/AllocatorReference.hpp @@ -0,0 +1,8 @@ +#pragma once + +#include + +namespace OpenVic::memory { + template + using allocator_reference = foonathan::memory::allocator_reference; +} \ No newline at end of file diff --git a/src/openvic-simulation/core/memory/allocators/Deleter.hpp b/src/openvic-simulation/core/memory/allocators/Deleter.hpp new file mode 100644 index 000000000..3418aa952 --- /dev/null +++ b/src/openvic-simulation/core/memory/allocators/Deleter.hpp @@ -0,0 +1,40 @@ +#pragma once + +#include +#include + +#include "openvic-simulation/core/memory/allocators/AllocatorReference.hpp" +#include "openvic-simulation/core/memory/make_tracked_allocator.hpp" + +namespace OpenVic::memory { + template + using allocator_deleter = foonathan::memory::allocator_deleter; + + template + requires(!std::is_array_v) + static inline void dealloc_delete(RawAllocator&& alloc, T* ptr) { + ptr->~T(); + allocator_reference alloc_ref = foonathan::memory::make_allocator_reference(alloc); + alloc_ref.deallocate(ptr, sizeof(T), alignof(T)); + } + + template + requires(std::is_unbounded_array_v) + static inline void dealloc_delete(RawAllocator&& alloc, T* ptr, size_t n) { + std::destroy_n(ptr, n); + allocator_reference alloc_ref = foonathan::memory::make_allocator_reference(alloc); + alloc_ref.deallocate(ptr, sizeof(T) * n, alignof(T)); + } + + template + requires(!std::is_array_v) + static inline void delete_at(T* ptr) { + dealloc_delete(OpenVic::memory::make_tracked_allocator(RawAllocator {}), ptr); + } + + template + requires(std::is_unbounded_array_v) + static inline void delete_at(T* ptr, size_t n) { + dealloc_delete(OpenVic::memory::make_tracked_allocator(RawAllocator {}), ptr, n); + } +} \ No newline at end of file diff --git a/src/openvic-simulation/core/memory/allocators/NewAllocator.hpp b/src/openvic-simulation/core/memory/allocators/NewAllocator.hpp new file mode 100644 index 000000000..7e0f7e3ad --- /dev/null +++ b/src/openvic-simulation/core/memory/allocators/NewAllocator.hpp @@ -0,0 +1,38 @@ +#pragma once + +#include + +#include + +#include "openvic-simulation/core/memory/allocators/AllocatorReference.hpp" +#include "openvic-simulation/core/memory/make_tracked_allocator.hpp" + +namespace OpenVic::memory { + template + requires(!std::is_array_v) + static inline T* allocate_new(RawAllocator&& alloc, Args&&... args) { + allocator_reference alloc_ref = foonathan::memory::make_allocator_reference(alloc); + T* ptr = static_cast(alloc_ref.allocate_node(sizeof(T), alignof(T))); + ::new (ptr) T(std::forward(args)...); + return ptr; + } + + template + requires(std::is_unbounded_array_v) + static inline T* allocate_new(RawAllocator&& alloc, size_t n) { + allocator_reference alloc_ref = foonathan::memory::make_allocator_reference(alloc); + return static_cast(alloc_ref.allocate_node(sizeof(T) * n, alignof(T))); + } + + template + requires(!std::is_array_v) + static inline T* make_new(Args&&... args) { + return allocate_new(OpenVic::memory::make_tracked_allocator(RawAllocator {}), std::forward(args)...); + } + + template + requires(std::is_unbounded_array_v) + static inline T* make_new(size_t n) { + return allocate_new(OpenVic::memory::make_tracked_allocator(RawAllocator {}), n); + } +} \ No newline at end of file diff --git a/src/openvic-simulation/core/memory/make_tracked_allocator.hpp b/src/openvic-simulation/core/memory/make_tracked_allocator.hpp new file mode 100644 index 000000000..03dc3b0ef --- /dev/null +++ b/src/openvic-simulation/core/memory/make_tracked_allocator.hpp @@ -0,0 +1,21 @@ +#pragma once + +#include + +#include "openvic-simulation/core/memory/MemoryTracker.hpp" + +namespace OpenVic::memory { + template + tracker make_tracked_allocator( + RawAllocator&& alloc + ) { +#ifdef DEBUG_ENABLED + return foonathan::memory::make_tracked_allocator( + typename tracker::tracker {}, + std::forward(alloc) + ); +#else + return std::forward(alloc); +#endif + } +} \ No newline at end of file diff --git a/src/openvic-simulation/core/string/StringLiteral.hpp b/src/openvic-simulation/core/string/StringLiteral.hpp index 0cc709879..557fdeb62 100644 --- a/src/openvic-simulation/core/string/StringLiteral.hpp +++ b/src/openvic-simulation/core/string/StringLiteral.hpp @@ -6,7 +6,7 @@ #include #include -#include +#include "openvic-simulation/types/BasicIterator.hpp" namespace OpenVic { template diff --git a/src/openvic-simulation/core/string/Utility.hpp b/src/openvic-simulation/core/string/Utility.hpp index 8dbe0cb92..1522fe1d9 100644 --- a/src/openvic-simulation/core/string/Utility.hpp +++ b/src/openvic-simulation/core/string/Utility.hpp @@ -11,7 +11,7 @@ #include #include -#include "openvic-simulation/utility/Containers.hpp" +#include "openvic-simulation/core/memory/String.hpp" namespace OpenVic { inline constexpr bool ascii_equal_case_insensitive(std::string_view const& lhs, std::string_view const& rhs) { diff --git a/src/openvic-simulation/country/CountryInstance.cpp b/src/openvic-simulation/country/CountryInstance.cpp index 818610c0f..e6ccd5f2d 100644 --- a/src/openvic-simulation/country/CountryInstance.cpp +++ b/src/openvic-simulation/country/CountryInstance.cpp @@ -50,7 +50,6 @@ #include "openvic-simulation/population/PopSize.hpp" #include "openvic-simulation/population/PopSum.hpp" #include "openvic-simulation/types/UnitBranchType.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/utility/Logger.hpp" #include "openvic-simulation/core/Typedefs.hpp" diff --git a/src/openvic-simulation/country/CountryInstance.hpp b/src/openvic-simulation/country/CountryInstance.hpp index 655e73138..0854e6f45 100644 --- a/src/openvic-simulation/country/CountryInstance.hpp +++ b/src/openvic-simulation/country/CountryInstance.hpp @@ -1,10 +1,13 @@ #pragma once #include +#include #include #include +#include "openvic-simulation/core/memory/SmartPtr.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/diplomacy/CountryRelation.hpp" #include "openvic-simulation/economy/BuildingLevel.hpp" #include "openvic-simulation/economy/BuildingRestrictionCategory.hpp" @@ -27,7 +30,6 @@ #include "openvic-simulation/types/UnitVariant.hpp" #include "openvic-simulation/types/ValueHistory.hpp" #include "openvic-simulation/utility/Getters.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/utility/reactive/DerivedState.hpp" #include "openvic-simulation/utility/reactive/MutableState.hpp" diff --git a/src/openvic-simulation/country/CountryInstanceManager.hpp b/src/openvic-simulation/country/CountryInstanceManager.hpp index b43ed5e99..196aa679e 100644 --- a/src/openvic-simulation/country/CountryInstanceManager.hpp +++ b/src/openvic-simulation/country/CountryInstanceManager.hpp @@ -3,11 +3,11 @@ #include #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/country/CountryInstance.hpp" #include "openvic-simulation/country/SharedCountryValues.hpp" #include "openvic-simulation/types/Date.hpp" #include "openvic-simulation/types/IndexedFlatMap.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/utility/Getters.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/dataloader/Dataloader.cpp b/src/openvic-simulation/dataloader/Dataloader.cpp index 4d7fd6d39..06986c5ec 100644 --- a/src/openvic-simulation/dataloader/Dataloader.cpp +++ b/src/openvic-simulation/dataloader/Dataloader.cpp @@ -18,7 +18,6 @@ #include "openvic-simulation/misc/SoundEffect.hpp" #include "openvic-simulation/utility/Logger.hpp" #include "openvic-simulation/core/string/Utility.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/core/template/Concepts.hpp" using namespace OpenVic; diff --git a/src/openvic-simulation/dataloader/Dataloader.hpp b/src/openvic-simulation/dataloader/Dataloader.hpp index ef268f275..d5d5fc237 100644 --- a/src/openvic-simulation/dataloader/Dataloader.hpp +++ b/src/openvic-simulation/dataloader/Dataloader.hpp @@ -8,8 +8,8 @@ #include "openvic-simulation/dataloader/NodeTools.hpp" #include "openvic-simulation/dataloader/ModManager.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/core/template/Concepts.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include diff --git a/src/openvic-simulation/dataloader/NodeTools.hpp b/src/openvic-simulation/dataloader/NodeTools.hpp index ebf1ecad1..736631897 100644 --- a/src/openvic-simulation/dataloader/NodeTools.hpp +++ b/src/openvic-simulation/dataloader/NodeTools.hpp @@ -5,7 +5,6 @@ #include #include #include -#include #include #include @@ -24,9 +23,10 @@ #include "openvic-simulation/types/Vector.hpp" #include "openvic-simulation/core/FormatValidate.hpp" #include "openvic-simulation/utility/TslHelper.hpp" -#include "openvic-simulation/utility/Containers.hpp" -#include "openvic-simulation/core/template/Concepts.hpp" +#include "openvic-simulation/core/memory/String.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/core/string/Utility.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" #include diff --git a/src/openvic-simulation/dataloader/Vic2PathSearch.cpp b/src/openvic-simulation/dataloader/Vic2PathSearch.cpp index 11c079dc7..3b169d6ea 100644 --- a/src/openvic-simulation/dataloader/Vic2PathSearch.cpp +++ b/src/openvic-simulation/dataloader/Vic2PathSearch.cpp @@ -11,7 +11,6 @@ #include "openvic-simulation/types/OrderedContainers.hpp" #include "openvic-simulation/utility/ConstexprIntToStr.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/utility/Logger.hpp" #include "Dataloader.hpp" diff --git a/src/openvic-simulation/dataloader/Vic2PathSearch_Windows.hpp b/src/openvic-simulation/dataloader/Vic2PathSearch_Windows.hpp index c1c456c59..f84d8002a 100644 --- a/src/openvic-simulation/dataloader/Vic2PathSearch_Windows.hpp +++ b/src/openvic-simulation/dataloader/Vic2PathSearch_Windows.hpp @@ -9,7 +9,7 @@ #include -#include "openvic-simulation/utility/Containers.hpp" +#include "openvic-simulation/core/memory/String.hpp" #include "openvic-simulation/core/template/Concepts.hpp" namespace OpenVic::Windows { diff --git a/src/openvic-simulation/diplomacy/CountryRelation.hpp b/src/openvic-simulation/diplomacy/CountryRelation.hpp index 915e89763..6780ae663 100644 --- a/src/openvic-simulation/diplomacy/CountryRelation.hpp +++ b/src/openvic-simulation/diplomacy/CountryRelation.hpp @@ -9,9 +9,10 @@ #include #include +#include "openvic-simulation/core/Compare.hpp" +#include "openvic-simulation/core/Hash.hpp" #include "openvic-simulation/types/Date.hpp" #include "openvic-simulation/types/OrderedContainers.hpp" -#include "openvic-simulation/core/Hash.hpp" namespace OpenVic { struct CountryInstance; diff --git a/src/openvic-simulation/economy/BuildingType.hpp b/src/openvic-simulation/economy/BuildingType.hpp index 9f2b5c828..4b9616aaa 100644 --- a/src/openvic-simulation/economy/BuildingType.hpp +++ b/src/openvic-simulation/economy/BuildingType.hpp @@ -3,6 +3,7 @@ #include #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/modifier/Modifier.hpp" #include "openvic-simulation/economy/BuildingLevel.hpp" #include "openvic-simulation/economy/BuildingRestrictionCategory.hpp" @@ -11,7 +12,6 @@ #include "openvic-simulation/types/IdentifierRegistry.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" #include "openvic-simulation/types/TypedIndices.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct BuildingTypeManager; diff --git a/src/openvic-simulation/economy/GoodDefinition.hpp b/src/openvic-simulation/economy/GoodDefinition.hpp index 64c45d291..44a19d2e5 100644 --- a/src/openvic-simulation/economy/GoodDefinition.hpp +++ b/src/openvic-simulation/economy/GoodDefinition.hpp @@ -2,11 +2,11 @@ #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/types/HasIdentifier.hpp" #include "openvic-simulation/types/HasIndex.hpp" #include "openvic-simulation/types/IdentifierRegistry.hpp" #include "openvic-simulation/types/TypedIndices.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct GoodDefinitionManager; diff --git a/src/openvic-simulation/economy/production/ArtisanalProducer.hpp b/src/openvic-simulation/economy/production/ArtisanalProducer.hpp index fa06298f8..a6dc3987f 100644 --- a/src/openvic-simulation/economy/production/ArtisanalProducer.hpp +++ b/src/openvic-simulation/economy/production/ArtisanalProducer.hpp @@ -3,6 +3,7 @@ #include #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/types/IndexedFlatMap.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" #include "openvic-simulation/types/fixed_point/FixedPointMap.hpp" diff --git a/src/openvic-simulation/economy/production/ProductionType.hpp b/src/openvic-simulation/economy/production/ProductionType.hpp index 170f26f1f..b554c2f9e 100644 --- a/src/openvic-simulation/economy/production/ProductionType.hpp +++ b/src/openvic-simulation/economy/production/ProductionType.hpp @@ -2,13 +2,13 @@ #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/scripts/ConditionScript.hpp" #include "openvic-simulation/types/IdentifierRegistry.hpp" #include "openvic-simulation/types/IndexedFlatMap.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" #include "openvic-simulation/population/PopSize.hpp" #include "openvic-simulation/types/PopSprite.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct PopType; diff --git a/src/openvic-simulation/economy/production/ResourceGatheringOperation.cpp b/src/openvic-simulation/economy/production/ResourceGatheringOperation.cpp index 6cf48cfe1..4059db807 100644 --- a/src/openvic-simulation/economy/production/ResourceGatheringOperation.cpp +++ b/src/openvic-simulation/economy/production/ResourceGatheringOperation.cpp @@ -17,7 +17,6 @@ #include "openvic-simulation/types/fixed_point/Math.hpp" #include "openvic-simulation/types/TypedIndices.hpp" #include "openvic-simulation/utility/Logger.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include diff --git a/src/openvic-simulation/economy/production/ResourceGatheringOperation.hpp b/src/openvic-simulation/economy/production/ResourceGatheringOperation.hpp index 29adf0b94..2667acfff 100644 --- a/src/openvic-simulation/economy/production/ResourceGatheringOperation.hpp +++ b/src/openvic-simulation/economy/production/ResourceGatheringOperation.hpp @@ -2,13 +2,13 @@ #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/economy/production/Employee.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" #include "openvic-simulation/types/IndexedFlatMap.hpp" #include "openvic-simulation/population/PopSize.hpp" #include "openvic-simulation/population/PopSum.hpp" #include "openvic-simulation/utility/Getters.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct MarketInstance; diff --git a/src/openvic-simulation/economy/trading/GoodMarket.cpp b/src/openvic-simulation/economy/trading/GoodMarket.cpp index 7b721307c..1bb92a6ef 100644 --- a/src/openvic-simulation/economy/trading/GoodMarket.cpp +++ b/src/openvic-simulation/economy/trading/GoodMarket.cpp @@ -7,7 +7,6 @@ #include "openvic-simulation/misc/GameRulesManager.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" #include "openvic-simulation/types/fixed_point/Math.hpp" -#include "openvic-simulation/utility/Containers.hpp" using namespace OpenVic; static constexpr size_t MONTHS_OF_PRICE_HISTORY = 36; diff --git a/src/openvic-simulation/economy/trading/GoodMarket.hpp b/src/openvic-simulation/economy/trading/GoodMarket.hpp index 0abedcfd0..04f90b2b7 100644 --- a/src/openvic-simulation/economy/trading/GoodMarket.hpp +++ b/src/openvic-simulation/economy/trading/GoodMarket.hpp @@ -3,13 +3,13 @@ #include #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/economy/trading/BuyUpToOrder.hpp" #include "openvic-simulation/economy/trading/MarketSellOrder.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" #include "openvic-simulation/types/TypedIndices.hpp" #include "openvic-simulation/types/TypedSpan.hpp" #include "openvic-simulation/types/ValueHistory.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/utility/Getters.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/economy/trading/MarketInstance.cpp b/src/openvic-simulation/economy/trading/MarketInstance.cpp index 3dde889c2..a655efe29 100644 --- a/src/openvic-simulation/economy/trading/MarketInstance.cpp +++ b/src/openvic-simulation/economy/trading/MarketInstance.cpp @@ -6,7 +6,6 @@ #include "openvic-simulation/economy/trading/BuyUpToOrder.hpp" #include "openvic-simulation/economy/trading/MarketSellOrder.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/utility/ThreadPool.hpp" #include "openvic-simulation/core/Typedefs.hpp" diff --git a/src/openvic-simulation/economy/trading/MarketInstance.hpp b/src/openvic-simulation/economy/trading/MarketInstance.hpp index 57d4c527a..0750084f7 100644 --- a/src/openvic-simulation/economy/trading/MarketInstance.hpp +++ b/src/openvic-simulation/economy/trading/MarketInstance.hpp @@ -1,7 +1,7 @@ #pragma once +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct BuyUpToOrder; diff --git a/src/openvic-simulation/economy/trading/MarketSellOrder.hpp b/src/openvic-simulation/economy/trading/MarketSellOrder.hpp index 975c18aa7..7c059c42f 100644 --- a/src/openvic-simulation/economy/trading/MarketSellOrder.hpp +++ b/src/openvic-simulation/economy/trading/MarketSellOrder.hpp @@ -3,8 +3,8 @@ #include #include "openvic-simulation/economy/trading/SellResult.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/types/TypedIndices.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct GoodDefinition; diff --git a/src/openvic-simulation/history/CountryHistory.hpp b/src/openvic-simulation/history/CountryHistory.hpp index 72ac07278..1cdb25977 100644 --- a/src/openvic-simulation/history/CountryHistory.hpp +++ b/src/openvic-simulation/history/CountryHistory.hpp @@ -2,13 +2,13 @@ #include +#include "openvic-simulation/core/memory/SmartPtr.hpp" #include "openvic-simulation/history/HistoryMap.hpp" #include "openvic-simulation/types/Date.hpp" #include "openvic-simulation/types/IndexedFlatMap.hpp" #include "openvic-simulation/types/OrderedContainers.hpp" #include "openvic-simulation/types/fixed_point/FixedPointMap.hpp" #include "openvic-simulation/research/TechnologyUnlockLevel.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct CountryHistoryMap; diff --git a/src/openvic-simulation/history/DiplomaticHistory.cpp b/src/openvic-simulation/history/DiplomaticHistory.cpp index 916bf2e9f..1b4f20d86 100644 --- a/src/openvic-simulation/history/DiplomaticHistory.cpp +++ b/src/openvic-simulation/history/DiplomaticHistory.cpp @@ -1,7 +1,6 @@ #include "DiplomaticHistory.hpp" #include "openvic-simulation/DefinitionManager.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/history/DiplomaticHistory.hpp" using namespace OpenVic; diff --git a/src/openvic-simulation/history/DiplomaticHistory.hpp b/src/openvic-simulation/history/DiplomaticHistory.hpp index 6acd8a14e..3fc829da7 100644 --- a/src/openvic-simulation/history/DiplomaticHistory.hpp +++ b/src/openvic-simulation/history/DiplomaticHistory.hpp @@ -2,13 +2,13 @@ #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/dataloader/NodeTools.hpp" #include "openvic-simulation/history/diplomacy/AllianceHistory.hpp" #include "openvic-simulation/history/diplomacy/ReparationsHistory.hpp" #include "openvic-simulation/history/diplomacy/SubjectHistory.hpp" #include "openvic-simulation/history/diplomacy/WarHistory.hpp" #include "openvic-simulation/types/Date.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct CountryDefinitionManager; diff --git a/src/openvic-simulation/history/HistoryMap.hpp b/src/openvic-simulation/history/HistoryMap.hpp index 828a7032e..c106b0caa 100644 --- a/src/openvic-simulation/history/HistoryMap.hpp +++ b/src/openvic-simulation/history/HistoryMap.hpp @@ -3,10 +3,11 @@ #include #include +#include "openvic-simulation/core/memory/SmartPtr.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/dataloader/NodeTools.hpp" #include "openvic-simulation/types/Date.hpp" #include "openvic-simulation/types/OrderedContainers.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/history/ProvinceHistory.cpp b/src/openvic-simulation/history/ProvinceHistory.cpp index 099fc2e07..f9268bacf 100644 --- a/src/openvic-simulation/history/ProvinceHistory.cpp +++ b/src/openvic-simulation/history/ProvinceHistory.cpp @@ -9,7 +9,6 @@ #include "openvic-simulation/economy/GoodDefinition.hpp" #include "openvic-simulation/map/ProvinceDefinition.hpp" #include "openvic-simulation/utility/Logger.hpp" -#include "openvic-simulation/utility/Containers.hpp" using namespace OpenVic; using namespace OpenVic::NodeTools; diff --git a/src/openvic-simulation/history/ProvinceHistory.hpp b/src/openvic-simulation/history/ProvinceHistory.hpp index 37b7c27a8..12c37acbd 100644 --- a/src/openvic-simulation/history/ProvinceHistory.hpp +++ b/src/openvic-simulation/history/ProvinceHistory.hpp @@ -2,6 +2,7 @@ #include +#include "openvic-simulation/core/memory/SmartPtr.hpp" #include "openvic-simulation/economy/BuildingType.hpp" #include "openvic-simulation/history/HistoryMap.hpp" #include "openvic-simulation/population/Pop.hpp" @@ -14,7 +15,6 @@ #include "openvic-simulation/types/TypedSpan.hpp" #include "openvic-simulation/types/TypedIndices.hpp" #include "openvic-simulation/map/LifeRating.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/utility/Getters.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/history/diplomacy/WarHistory.hpp b/src/openvic-simulation/history/diplomacy/WarHistory.hpp index 30bc8939a..2a13ce3b3 100644 --- a/src/openvic-simulation/history/diplomacy/WarHistory.hpp +++ b/src/openvic-simulation/history/diplomacy/WarHistory.hpp @@ -3,9 +3,9 @@ #include #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/history/Period.hpp" #include "openvic-simulation/types/Date.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/utility/Getters.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/interface/GFXObject.hpp b/src/openvic-simulation/interface/GFXObject.hpp index 03dcfd926..3f3aa0aba 100644 --- a/src/openvic-simulation/interface/GFXObject.hpp +++ b/src/openvic-simulation/interface/GFXObject.hpp @@ -2,10 +2,10 @@ #include -#include "openvic-simulation/interface/LoadBase.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/core/ui/TextFormat.hpp" +#include "openvic-simulation/interface/LoadBase.hpp" #include "openvic-simulation/types/Vector.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic::GFX { diff --git a/src/openvic-simulation/interface/GFXSprite.hpp b/src/openvic-simulation/interface/GFXSprite.hpp index 58e0c5726..8c8e963e4 100644 --- a/src/openvic-simulation/interface/GFXSprite.hpp +++ b/src/openvic-simulation/interface/GFXSprite.hpp @@ -1,5 +1,7 @@ #pragma once +#include "openvic-simulation/core/memory/SmartPtr.hpp" +#include "openvic-simulation/core/memory/String.hpp" #include "openvic-simulation/interface/LoadBase.hpp" #include "openvic-simulation/types/HasIdentifier.hpp" diff --git a/src/openvic-simulation/map/MapDefinition.cpp b/src/openvic-simulation/map/MapDefinition.cpp index fb940c52b..cc3b4cd37 100644 --- a/src/openvic-simulation/map/MapDefinition.cpp +++ b/src/openvic-simulation/map/MapDefinition.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include @@ -31,7 +30,6 @@ #include "openvic-simulation/types/TypedSpan.hpp" #include "openvic-simulation/types/Vector.hpp" #include "openvic-simulation/utility/Logger.hpp" -#include "openvic-simulation/utility/Containers.hpp" using namespace OpenVic; using namespace OpenVic::NodeTools; diff --git a/src/openvic-simulation/map/MapDefinition.hpp b/src/openvic-simulation/map/MapDefinition.hpp index c52099ac4..a2aa45f95 100644 --- a/src/openvic-simulation/map/MapDefinition.hpp +++ b/src/openvic-simulation/map/MapDefinition.hpp @@ -8,6 +8,7 @@ #include #include "openvic-simulation/core/io/BMP.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/map/ProvinceDefinition.hpp" #include "openvic-simulation/map/Region.hpp" #include "openvic-simulation/map/TerrainType.hpp" @@ -16,7 +17,6 @@ #include "openvic-simulation/types/IdentifierRegistry.hpp" #include "openvic-simulation/types/OrderedContainers.hpp" #include "openvic-simulation/types/Vector.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct BuildingTypeManager; diff --git a/src/openvic-simulation/map/ProvinceDefinition.cpp b/src/openvic-simulation/map/ProvinceDefinition.cpp index 69db5cd28..ee0a49181 100644 --- a/src/openvic-simulation/map/ProvinceDefinition.cpp +++ b/src/openvic-simulation/map/ProvinceDefinition.cpp @@ -6,7 +6,6 @@ #include "openvic-simulation/economy/BuildingType.hpp" #include "openvic-simulation/map/MapDefinition.hpp" #include "openvic-simulation/types/fixed_point/Math.hpp" -#include "openvic-simulation/utility/Containers.hpp" using namespace OpenVic; using namespace OpenVic::NodeTools; diff --git a/src/openvic-simulation/map/ProvinceDefinition.hpp b/src/openvic-simulation/map/ProvinceDefinition.hpp index 2a644fee3..29c991c0b 100644 --- a/src/openvic-simulation/map/ProvinceDefinition.hpp +++ b/src/openvic-simulation/map/ProvinceDefinition.hpp @@ -5,6 +5,7 @@ #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/dataloader/NodeTools.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" #include "openvic-simulation/types/fixed_point/FixedPointMap.hpp" @@ -13,7 +14,6 @@ #include "openvic-simulation/types/OrderedContainers.hpp" #include "openvic-simulation/types/TypedIndices.hpp" #include "openvic-simulation/types/Vector.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/map/ProvinceInstance.hpp b/src/openvic-simulation/map/ProvinceInstance.hpp index f280155c7..4e77066d7 100644 --- a/src/openvic-simulation/map/ProvinceInstance.hpp +++ b/src/openvic-simulation/map/ProvinceInstance.hpp @@ -2,8 +2,8 @@ #include -#include - +#include "openvic-simulation/core/memory/Colony.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/core/portable/ForwardableSpan.hpp" #include "openvic-simulation/economy/BuildingInstance.hpp" #include "openvic-simulation/economy/production/ResourceGatheringOperation.hpp" @@ -22,7 +22,6 @@ #include "openvic-simulation/types/TypedIndices.hpp" #include "openvic-simulation/types/TypedSpan.hpp" #include "openvic-simulation/types/UnitBranchType.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct BaseIssue; diff --git a/src/openvic-simulation/map/Region.hpp b/src/openvic-simulation/map/Region.hpp index abed3a3e0..fffecd617 100644 --- a/src/openvic-simulation/map/Region.hpp +++ b/src/openvic-simulation/map/Region.hpp @@ -4,9 +4,9 @@ #include #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/modifier/Modifier.hpp" #include "openvic-simulation/types/HasIdentifier.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct ProvinceDefinition; diff --git a/src/openvic-simulation/map/State.cpp b/src/openvic-simulation/map/State.cpp index 6fa3b5847..c4992c84d 100644 --- a/src/openvic-simulation/map/State.cpp +++ b/src/openvic-simulation/map/State.cpp @@ -9,7 +9,6 @@ #include "openvic-simulation/population/Pop.hpp" #include "openvic-simulation/population/PopType.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" -#include "openvic-simulation/utility/Containers.hpp" using namespace OpenVic; diff --git a/src/openvic-simulation/map/State.hpp b/src/openvic-simulation/map/State.hpp index 038c11b04..a695f1235 100644 --- a/src/openvic-simulation/map/State.hpp +++ b/src/openvic-simulation/map/State.hpp @@ -3,12 +3,12 @@ #include #include -#include +#include "openvic-simulation/core/memory/Colony.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/population/PopsAggregate.hpp" #include "openvic-simulation/types/ColonyStatus.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/core/portable/ForwardableSpan.hpp" #include "openvic-simulation/utility/Getters.hpp" diff --git a/src/openvic-simulation/map/TerrainType.cpp b/src/openvic-simulation/map/TerrainType.cpp index 510c232a3..e7326cac8 100644 --- a/src/openvic-simulation/map/TerrainType.cpp +++ b/src/openvic-simulation/map/TerrainType.cpp @@ -6,7 +6,6 @@ #include "openvic-simulation/types/Colour.hpp" #include "openvic-simulation/types/HasIdentifier.hpp" #include "openvic-simulation/core/FormatValidate.hpp" -#include "openvic-simulation/utility/Containers.hpp" using namespace OpenVic; using namespace OpenVic::NodeTools; diff --git a/src/openvic-simulation/map/TerrainType.hpp b/src/openvic-simulation/map/TerrainType.hpp index 802eef402..8527b8f45 100644 --- a/src/openvic-simulation/map/TerrainType.hpp +++ b/src/openvic-simulation/map/TerrainType.hpp @@ -1,11 +1,11 @@ #pragma once +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/modifier/Modifier.hpp" #include "openvic-simulation/types/HasIdentifier.hpp" #include "openvic-simulation/types/HasIndex.hpp" #include "openvic-simulation/types/OrderedContainers.hpp" #include "openvic-simulation/types/TypedIndices.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { // Using HasColour rather than HasIdentifierAndColour to avoid needing virtual inheritance diff --git a/src/openvic-simulation/military/Deployment.cpp b/src/openvic-simulation/military/Deployment.cpp index 6959d7b54..dfeba572d 100644 --- a/src/openvic-simulation/military/Deployment.cpp +++ b/src/openvic-simulation/military/Deployment.cpp @@ -6,7 +6,6 @@ #include "openvic-simulation/military/Leader.hpp" #include "openvic-simulation/military/LeaderTrait.hpp" #include "openvic-simulation/military/UnitType.hpp" -#include "openvic-simulation/utility/Containers.hpp" using namespace OpenVic; using namespace OpenVic::NodeTools; diff --git a/src/openvic-simulation/military/Deployment.hpp b/src/openvic-simulation/military/Deployment.hpp index c3c1a073b..c4c2574b7 100644 --- a/src/openvic-simulation/military/Deployment.hpp +++ b/src/openvic-simulation/military/Deployment.hpp @@ -4,12 +4,12 @@ #include #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/military/Leader.hpp" #include "openvic-simulation/military/UnitBranchedGetterMacro.hpp" #include "openvic-simulation/types/HasIdentifier.hpp" #include "openvic-simulation/types/IdentifierRegistry.hpp" #include "openvic-simulation/types/UnitBranchType.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/utility/Getters.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/military/LeaderTrait.hpp b/src/openvic-simulation/military/LeaderTrait.hpp index 8bc4c93e2..f43d90e25 100644 --- a/src/openvic-simulation/military/LeaderTrait.hpp +++ b/src/openvic-simulation/military/LeaderTrait.hpp @@ -2,10 +2,10 @@ #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/dataloader/NodeTools.hpp" #include "openvic-simulation/modifier/Modifier.hpp" #include "openvic-simulation/types/IdentifierRegistry.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct LeaderTrait : Modifier { diff --git a/src/openvic-simulation/military/UnitInstanceGroup.cpp b/src/openvic-simulation/military/UnitInstanceGroup.cpp index c649a633e..08e336d85 100644 --- a/src/openvic-simulation/military/UnitInstanceGroup.cpp +++ b/src/openvic-simulation/military/UnitInstanceGroup.cpp @@ -1,7 +1,5 @@ #include "UnitInstanceGroup.hpp" -#include - #include #include "openvic-simulation/country/CountryInstance.hpp" @@ -13,7 +11,6 @@ #include "openvic-simulation/population/Culture.hpp" #include "openvic-simulation/population/PopType.hpp" #include "openvic-simulation/types/OrderedContainersMath.hpp" -#include "openvic-simulation/utility/Containers.hpp" using namespace OpenVic; diff --git a/src/openvic-simulation/military/UnitInstanceGroup.hpp b/src/openvic-simulation/military/UnitInstanceGroup.hpp index cbd94049d..ee2804ab7 100644 --- a/src/openvic-simulation/military/UnitInstanceGroup.hpp +++ b/src/openvic-simulation/military/UnitInstanceGroup.hpp @@ -3,15 +3,13 @@ #include #include -#include - +#include "openvic-simulation/core/memory/Colony.hpp" #include "openvic-simulation/military/Leader.hpp" #include "openvic-simulation/military/UnitInstance.hpp" #include "openvic-simulation/military/UnitType.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" #include "openvic-simulation/types/UnitBranchType.hpp" #include "openvic-simulation/utility/Getters.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/military/UnitBranchedGetterMacro.hpp" //below other imports that undef the macros diff --git a/src/openvic-simulation/military/Wargoal.hpp b/src/openvic-simulation/military/Wargoal.hpp index 4cb2fc775..daeb958a5 100644 --- a/src/openvic-simulation/military/Wargoal.hpp +++ b/src/openvic-simulation/military/Wargoal.hpp @@ -4,12 +4,12 @@ #include +#include "openvic-simulation/core/memory/String.hpp" #include "openvic-simulation/scripts/ConditionScript.hpp" #include "openvic-simulation/scripts/EffectScript.hpp" #include "openvic-simulation/core/template/EnumBitfield.hpp" #include "openvic-simulation/types/IdentifierRegistry.hpp" #include "openvic-simulation/utility/Getters.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct WargoalTypeManager; diff --git a/src/openvic-simulation/misc/Event.cpp b/src/openvic-simulation/misc/Event.cpp index 1ea77109f..d54f8b7aa 100644 --- a/src/openvic-simulation/misc/Event.cpp +++ b/src/openvic-simulation/misc/Event.cpp @@ -7,7 +7,6 @@ #include "openvic-simulation/dataloader/NodeTools.hpp" #include "openvic-simulation/politics/IssueManager.hpp" -#include "openvic-simulation/utility/Containers.hpp" using namespace OpenVic; using namespace OpenVic::NodeTools; diff --git a/src/openvic-simulation/misc/Event.hpp b/src/openvic-simulation/misc/Event.hpp index f72f1b55b..c909f8e54 100644 --- a/src/openvic-simulation/misc/Event.hpp +++ b/src/openvic-simulation/misc/Event.hpp @@ -1,11 +1,12 @@ #pragma once +#include "openvic-simulation/core/memory/String.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/politics/IssueGroup.hpp" #include "openvic-simulation/scripts/ConditionalWeight.hpp" #include "openvic-simulation/scripts/EffectScript.hpp" #include "openvic-simulation/types/IdentifierRegistry.hpp" #include "openvic-simulation/types/OrderedContainers.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct EventManager; diff --git a/src/openvic-simulation/misc/SimulationClock.hpp b/src/openvic-simulation/misc/SimulationClock.hpp index c4c3af0a4..5d7d9b8c8 100644 --- a/src/openvic-simulation/misc/SimulationClock.hpp +++ b/src/openvic-simulation/misc/SimulationClock.hpp @@ -1,7 +1,6 @@ #pragma once #include -#include #include "openvic-simulation/utility/Getters.hpp" diff --git a/src/openvic-simulation/modifier/ModifierSum.hpp b/src/openvic-simulation/modifier/ModifierSum.hpp index 5e5c78810..72b2459c2 100644 --- a/src/openvic-simulation/modifier/ModifierSum.hpp +++ b/src/openvic-simulation/modifier/ModifierSum.hpp @@ -1,13 +1,12 @@ #pragma once -#include #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/dataloader/NodeTools.hpp" #include "openvic-simulation/modifier/ModifierValue.hpp" #include "openvic-simulation/modifier/Modifier.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct CountryInstance; diff --git a/src/openvic-simulation/pathfinding/AStarPathing.cpp b/src/openvic-simulation/pathfinding/AStarPathing.cpp index a4d314b20..4667ee138 100644 --- a/src/openvic-simulation/pathfinding/AStarPathing.cpp +++ b/src/openvic-simulation/pathfinding/AStarPathing.cpp @@ -15,7 +15,6 @@ #include "openvic-simulation/military/UnitInstanceGroup.hpp" #include "openvic-simulation/pathfinding/PointMap.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/core/Typedefs.hpp" using namespace OpenVic; diff --git a/src/openvic-simulation/pathfinding/FringePathing.cpp b/src/openvic-simulation/pathfinding/FringePathing.cpp index bdf67e635..2381163be 100644 --- a/src/openvic-simulation/pathfinding/FringePathing.cpp +++ b/src/openvic-simulation/pathfinding/FringePathing.cpp @@ -1,7 +1,5 @@ #include "openvic-simulation/pathfinding/FringePathing.hpp" -#include - #include #include @@ -13,7 +11,6 @@ #include "openvic-simulation/pathfinding/PointMap.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" -#include "openvic-simulation/utility/Containers.hpp" using namespace OpenVic; diff --git a/src/openvic-simulation/pathfinding/PathingBase.hpp b/src/openvic-simulation/pathfinding/PathingBase.hpp index 1b5bf129f..0ee32634a 100644 --- a/src/openvic-simulation/pathfinding/PathingBase.hpp +++ b/src/openvic-simulation/pathfinding/PathingBase.hpp @@ -5,11 +5,12 @@ #include #include "openvic-simulation/core/error/ErrorMacros.hpp" +#include "openvic-simulation/core/memory/Formatting.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/pathfinding/PointMap.hpp" #include "openvic-simulation/types/Signal.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" #include "openvic-simulation/types/fixed_point/Math.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include #include diff --git a/src/openvic-simulation/pathfinding/PointMap.cpp b/src/openvic-simulation/pathfinding/PointMap.cpp index d4a05d3cc..8489c32ac 100644 --- a/src/openvic-simulation/pathfinding/PointMap.cpp +++ b/src/openvic-simulation/pathfinding/PointMap.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include @@ -12,9 +11,10 @@ #include #include "openvic-simulation/core/error/ErrorMacros.hpp" +#include "openvic-simulation/core/memory/Formatting.hpp" +#include "openvic-simulation/core/Typedefs.hpp" #include "openvic-simulation/types/Vector.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" -#include "openvic-simulation/core/Typedefs.hpp" using namespace OpenVic; diff --git a/src/openvic-simulation/pathfinding/PointMap.hpp b/src/openvic-simulation/pathfinding/PointMap.hpp index cde85f497..c418f7f36 100644 --- a/src/openvic-simulation/pathfinding/PointMap.hpp +++ b/src/openvic-simulation/pathfinding/PointMap.hpp @@ -3,16 +3,15 @@ #include #include #include -#include #include #include +#include "openvic-simulation/core/Hash.hpp" #include "openvic-simulation/core/template/EnumBitfield.hpp" +#include "openvic-simulation/types/fixed_point/FixedPoint.hpp" #include "openvic-simulation/types/Signal.hpp" #include "openvic-simulation/types/Vector.hpp" -#include "openvic-simulation/types/fixed_point/FixedPoint.hpp" -#include "openvic-simulation/core/Hash.hpp" namespace OpenVic { struct PointMap { diff --git a/src/openvic-simulation/player/PlayerManager.hpp b/src/openvic-simulation/player/PlayerManager.hpp index b873eb6d0..a881756f4 100644 --- a/src/openvic-simulation/player/PlayerManager.hpp +++ b/src/openvic-simulation/player/PlayerManager.hpp @@ -1,6 +1,6 @@ #pragma once -#include "openvic-simulation/utility/Containers.hpp" +#include "openvic-simulation/core/memory/String.hpp" #include "openvic-simulation/utility/Getters.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/politics/Government.hpp b/src/openvic-simulation/politics/Government.hpp index 2ab8b7f9b..b41a09984 100644 --- a/src/openvic-simulation/politics/Government.hpp +++ b/src/openvic-simulation/politics/Government.hpp @@ -2,12 +2,13 @@ #include +#include "openvic-simulation/core/memory/String.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/types/Date.hpp" #include "openvic-simulation/types/HasIdentifier.hpp" #include "openvic-simulation/types/HasIndex.hpp" #include "openvic-simulation/types/IdentifierRegistry.hpp" #include "openvic-simulation/types/TypedIndices.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct Ideology; diff --git a/src/openvic-simulation/population/Pop.cpp b/src/openvic-simulation/population/Pop.cpp index 32c317917..a099e60b3 100644 --- a/src/openvic-simulation/population/Pop.cpp +++ b/src/openvic-simulation/population/Pop.cpp @@ -41,7 +41,6 @@ #include "openvic-simulation/types/IndexedFlatMap.hpp" #include "openvic-simulation/types/OrderedContainers.hpp" #include "openvic-simulation/types/TypedIndices.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/utility/Logger.hpp" diff --git a/src/openvic-simulation/population/Pop.hpp b/src/openvic-simulation/population/Pop.hpp index efb10130c..87c974ff7 100644 --- a/src/openvic-simulation/population/Pop.hpp +++ b/src/openvic-simulation/population/Pop.hpp @@ -3,6 +3,7 @@ #include #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/core/portable/ForwardableSpan.hpp" #include "openvic-simulation/economy/production/ArtisanalProducer.hpp" #include "openvic-simulation/population/PopIdInProvince.hpp" @@ -13,7 +14,6 @@ #include "openvic-simulation/types/fixed_point/FixedPointMap.hpp" #include "openvic-simulation/types/IndexedFlatMap.hpp" #include "openvic-simulation/types/UnitBranchType.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include diff --git a/src/openvic-simulation/population/PopType.hpp b/src/openvic-simulation/population/PopType.hpp index 86ceb0a4f..f702c6d8e 100644 --- a/src/openvic-simulation/population/PopType.hpp +++ b/src/openvic-simulation/population/PopType.hpp @@ -2,6 +2,7 @@ #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/scripts/ConditionalWeight.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" #include "openvic-simulation/types/fixed_point/FixedPointMap.hpp" @@ -11,7 +12,6 @@ #include "openvic-simulation/population/PopSize.hpp" #include "openvic-simulation/types/PopSprite.hpp" #include "openvic-simulation/types/TypedIndices.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct BaseIssue; diff --git a/src/openvic-simulation/research/Technology.hpp b/src/openvic-simulation/research/Technology.hpp index 9ec16e2b6..25997a222 100644 --- a/src/openvic-simulation/research/Technology.hpp +++ b/src/openvic-simulation/research/Technology.hpp @@ -3,6 +3,7 @@ #include #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/modifier/Modifier.hpp" #include "openvic-simulation/scripts/ConditionalWeight.hpp" #include "openvic-simulation/types/Date.hpp" @@ -11,7 +12,6 @@ #include "openvic-simulation/types/OrderedContainers.hpp" #include "openvic-simulation/types/TypedIndices.hpp" #include "openvic-simulation/types/UnitVariant.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct BuildingType; diff --git a/src/openvic-simulation/scripts/Condition.cpp b/src/openvic-simulation/scripts/Condition.cpp index 08cc1d384..eb8ef376c 100644 --- a/src/openvic-simulation/scripts/Condition.cpp +++ b/src/openvic-simulation/scripts/Condition.cpp @@ -4,7 +4,6 @@ #include "openvic-simulation/dataloader/NodeTools.hpp" #include "openvic-simulation/DefinitionManager.hpp" -#include "openvic-simulation/utility/Containers.hpp" using namespace OpenVic; using namespace OpenVic::NodeTools; diff --git a/src/openvic-simulation/scripts/Condition.hpp b/src/openvic-simulation/scripts/Condition.hpp index 2e9633531..1411d05ca 100644 --- a/src/openvic-simulation/scripts/Condition.hpp +++ b/src/openvic-simulation/scripts/Condition.hpp @@ -5,10 +5,11 @@ #include #include +#include "openvic-simulation/core/memory/String.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/core/template/EnumBitfield.hpp" #include "openvic-simulation/types/HasIdentifier.hpp" #include "openvic-simulation/types/IdentifierRegistry.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { struct ConditionManager; diff --git a/src/openvic-simulation/scripts/ConditionalWeight.hpp b/src/openvic-simulation/scripts/ConditionalWeight.hpp index f789ba2b0..fe45d7d0d 100644 --- a/src/openvic-simulation/scripts/ConditionalWeight.hpp +++ b/src/openvic-simulation/scripts/ConditionalWeight.hpp @@ -1,12 +1,11 @@ #pragma once #include -#include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/dataloader/NodeTools.hpp" #include "openvic-simulation/scripts/ConditionScript.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { enum class conditional_weight_type_t : uint8_t { diff --git a/src/openvic-simulation/scripts/Script.hpp b/src/openvic-simulation/scripts/Script.hpp index 4d83842ba..4178104d5 100644 --- a/src/openvic-simulation/scripts/Script.hpp +++ b/src/openvic-simulation/scripts/Script.hpp @@ -1,7 +1,5 @@ #pragma once -#include - #include "openvic-simulation/dataloader/NodeTools.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/testing/TestScript.hpp b/src/openvic-simulation/testing/TestScript.hpp index 2ae2fd73e..410a533ef 100644 --- a/src/openvic-simulation/testing/TestScript.hpp +++ b/src/openvic-simulation/testing/TestScript.hpp @@ -1,10 +1,8 @@ #pragma once -#include -#include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/DefinitionManager.hpp" #include "openvic-simulation/testing/Requirement.hpp" -#include "openvic-simulation/utility/Containers.hpp" namespace OpenVic { diff --git a/src/openvic-simulation/testing/Testing.cpp b/src/openvic-simulation/testing/Testing.cpp index 29400aeb1..8ea5353ce 100644 --- a/src/openvic-simulation/testing/Testing.cpp +++ b/src/openvic-simulation/testing/Testing.cpp @@ -3,7 +3,6 @@ #include #include "openvic-simulation/testing/TestScript.hpp" -#include "openvic-simulation/utility/Containers.hpp" using namespace OpenVic; diff --git a/src/openvic-simulation/testing/Testing.hpp b/src/openvic-simulation/testing/Testing.hpp index 27d57afcf..2099d1386 100644 --- a/src/openvic-simulation/testing/Testing.hpp +++ b/src/openvic-simulation/testing/Testing.hpp @@ -1,10 +1,11 @@ #pragma once #include -#include #include +#include "openvic-simulation/core/memory/SmartPtr.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/DefinitionManager.hpp" #include "openvic-simulation/testing/TestScript.hpp" #include "openvic-simulation/testing/test_scripts/A_001_file_tests.cpp" diff --git a/src/openvic-simulation/testing/test_scripts/A_001_file_tests.cpp b/src/openvic-simulation/testing/test_scripts/A_001_file_tests.cpp index dbf777f65..dcce879a2 100644 --- a/src/openvic-simulation/testing/test_scripts/A_001_file_tests.cpp +++ b/src/openvic-simulation/testing/test_scripts/A_001_file_tests.cpp @@ -1,8 +1,5 @@ -#include "openvic-simulation/DefinitionManager.hpp" #include "openvic-simulation/testing/TestScript.hpp" -#include "utility/Containers.hpp" - namespace OpenVic { class A_001_file_tests : public TestScript { diff --git a/src/openvic-simulation/types/CowVector.hpp b/src/openvic-simulation/types/CowVector.hpp index 22b7abb3e..38b9a62fd 100644 --- a/src/openvic-simulation/types/CowVector.hpp +++ b/src/openvic-simulation/types/CowVector.hpp @@ -9,7 +9,6 @@ #include #include #include -#include #include "openvic-simulation/core/Assert.hpp" #include "openvic-simulation/types/BasicIterator.hpp" diff --git a/src/openvic-simulation/types/Date.hpp b/src/openvic-simulation/types/Date.hpp index 90c45b410..7fb0fff13 100644 --- a/src/openvic-simulation/types/Date.hpp +++ b/src/openvic-simulation/types/Date.hpp @@ -9,13 +9,14 @@ #include #include #include -#include #include #include #include +#include "openvic-simulation/core/memory/Formatting.hpp" +#include "openvic-simulation/core/memory/String.hpp" #include "openvic-simulation/core/error/ErrorMacros.hpp" #include "openvic-simulation/types/StackString.hpp" #include "openvic-simulation/utility/Getters.hpp" diff --git a/src/openvic-simulation/types/FixedVector.hpp b/src/openvic-simulation/types/FixedVector.hpp index 9e34708dc..d5677f432 100644 --- a/src/openvic-simulation/types/FixedVector.hpp +++ b/src/openvic-simulation/types/FixedVector.hpp @@ -203,7 +203,7 @@ namespace OpenVic::_detail { #include -#include "openvic-simulation/utility/MemoryTracker.hpp" +#include "openvic-simulation/core/memory/MemoryTracker.hpp" namespace OpenVic::memory { template diff --git a/src/openvic-simulation/types/IdentifierRegistry.hpp b/src/openvic-simulation/types/IdentifierRegistry.hpp index 577bd61ea..811fc6ecb 100644 --- a/src/openvic-simulation/types/IdentifierRegistry.hpp +++ b/src/openvic-simulation/types/IdentifierRegistry.hpp @@ -1,8 +1,8 @@ #pragma once #include -#include +#include "openvic-simulation/core/memory/SmartPtr.hpp" #include "openvic-simulation/dataloader/NodeTools.hpp" #include "openvic-simulation/types/fixed_point/FixedPointMap.hpp" #include "openvic-simulation/core/template/Concepts.hpp" diff --git a/src/openvic-simulation/types/IndexedFlatMap.hpp b/src/openvic-simulation/types/IndexedFlatMap.hpp index 94dca9008..1b17503a0 100644 --- a/src/openvic-simulation/types/IndexedFlatMap.hpp +++ b/src/openvic-simulation/types/IndexedFlatMap.hpp @@ -11,6 +11,7 @@ #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/types/FixedVector.hpp" #include "openvic-simulation/core/template/Concepts.hpp" #include "openvic-simulation/core/portable/ForwardableSpan.hpp" diff --git a/src/openvic-simulation/types/OrderedContainers.hpp b/src/openvic-simulation/types/OrderedContainers.hpp index f1c1d942f..bcd316f6e 100644 --- a/src/openvic-simulation/types/OrderedContainers.hpp +++ b/src/openvic-simulation/types/OrderedContainers.hpp @@ -8,10 +8,10 @@ #include #include -#include "openvic-simulation/core/template/Concepts.hpp" -#include "openvic-simulation/utility/Containers.hpp" +#include "openvic-simulation/core/memory/String.hpp" #include "openvic-simulation/core/portable/Deque.hpp" #include "openvic-simulation/core/string/Utility.hpp" +#include "openvic-simulation/core/template/Concepts.hpp" #include #include diff --git a/src/openvic-simulation/types/RingBuffer.hpp b/src/openvic-simulation/types/RingBuffer.hpp index 731395e88..dee68b6a0 100644 --- a/src/openvic-simulation/types/RingBuffer.hpp +++ b/src/openvic-simulation/types/RingBuffer.hpp @@ -10,7 +10,6 @@ #include #include #include -#include #include #include diff --git a/src/openvic-simulation/types/Signal.hpp b/src/openvic-simulation/types/Signal.hpp index 882ed3d46..c7bbb7709 100644 --- a/src/openvic-simulation/types/Signal.hpp +++ b/src/openvic-simulation/types/Signal.hpp @@ -10,13 +10,18 @@ #include #include #include -#include -#include "openvic-simulation/types/CowPtr.hpp" -#include "openvic-simulation/types/CowVector.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/core/thread/NullMutex.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/core/Typedefs.hpp" +#include "openvic-simulation/types/CowVector.hpp" + +// For OpenVic::_detail::signal::make_shared +#ifdef DEBUG_ENABLED + #include "openvic-simulation/core/memory/allocators/NewAllocator.hpp" +#else + #include "openvic-simulation/core/memory/SmartPtr.hpp" +#endif // Based heavily on https://github.com/palacaze/sigslot and https://github.com/mousebyte/sigslot20 diff --git a/src/openvic-simulation/types/StackString.hpp b/src/openvic-simulation/types/StackString.hpp index d2c73aec3..15aca796f 100644 --- a/src/openvic-simulation/types/StackString.hpp +++ b/src/openvic-simulation/types/StackString.hpp @@ -6,7 +6,7 @@ #include #include "openvic-simulation/core/Assert.hpp" -#include "openvic-simulation/utility/Containers.hpp" +#include "openvic-simulation/core/memory/String.hpp" namespace OpenVic { template diff --git a/src/openvic-simulation/utility/Containers.hpp b/src/openvic-simulation/utility/Containers.hpp deleted file mode 100644 index eb115a663..000000000 --- a/src/openvic-simulation/utility/Containers.hpp +++ /dev/null @@ -1,292 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include -#include - -#include - -#include - -#include "openvic-simulation/types/CowPtr.hpp" -#include "openvic-simulation/types/CowVector.hpp" -#include "openvic-simulation/utility/DequeMemory.hpp" -#include "openvic-simulation/utility/MemoryTracker.hpp" - -#include -#include -#include -#include -#include -#include -#include - -namespace OpenVic::memory { - template - tracker make_tracked_allocator( // - RawAllocator&& alloc - ) { -#ifdef DEBUG_ENABLED - return foonathan::memory::make_tracked_allocator( - typename tracker::tracker {}, std::forward(alloc) - ); -#else - return std::forward(alloc); -#endif - } - - template - using allocator_reference = foonathan::memory::allocator_reference; - - template - allocator_reference make_allocator_reference(RawAllocator&& alloc) { - return foonathan::memory::make_allocator_reference(alloc); - } - - template - using allocator_deleter = foonathan::memory::allocator_deleter; - - template - struct will_optimize_deleter_for : std::false_type {}; - - template<> - struct will_optimize_deleter_for : std::true_type {}; - - template<> - struct will_optimize_deleter_for : std::true_type {}; - - template<> - struct will_optimize_deleter_for : std::true_type {}; - -#ifdef DEBUG_ENABLED - template - using unique_ptr = foonathan::memory::unique_ptr>; - - template - using unique_base_ptr = foonathan::memory::unique_base_ptr>; - - template - requires(!std::is_array_v) - unique_ptr> allocate_unique(RawAllocator&& alloc, Args&&... args) { - return foonathan::memory::allocate_unique( - make_tracked_allocator(std::forward(alloc)), std::forward(args)... - ); - } - - template - requires(std::is_array_v) - unique_ptr> allocate_unique(RawAllocator&& alloc, std::size_t size) { - return foonathan::memory::allocate_unique>( - make_tracked_allocator(std::forward(alloc)), size - ); - } -#else - template - using unique_ptr = std::conditional_t< - will_optimize_deleter_for::value, std::unique_ptr, - foonathan::memory::unique_ptr>>; - - template - using unique_base_ptr = std::conditional_t< - will_optimize_deleter_for::value, std::unique_ptr, - foonathan::memory::unique_base_ptr>>; - - template - requires(!std::is_array_v) - unique_ptr> allocate_unique(RawAllocator&& alloc, Args&&... args) { - if constexpr (will_optimize_deleter_for::value) { - return std::make_unique(std::forward(args)...); - } else { - return foonathan::memory::allocate_unique( - make_tracked_allocator(std::forward(alloc)), std::forward(args)... - ); - } - } - - template - requires(std::is_array_v) - unique_ptr> allocate_unique(RawAllocator&& alloc, std::size_t size) { - if constexpr (will_optimize_deleter_for::value) { - return std::make_unique(size); - } else { - return foonathan::memory::allocate_unique>( - make_tracked_allocator(std::forward(alloc)), size - ); - } - } -#endif - - template - requires(!std::is_array_v) - static inline T* allocate_new(RawAllocator&& alloc, Args&&... args) { - allocator_reference alloc_ref = ::OpenVic::memory::make_allocator_reference(alloc); - T* ptr = static_cast(alloc_ref.allocate_node(sizeof(T), alignof(T))); - ::new (ptr) T(std::forward(args)...); - return ptr; - } - - template - requires(std::is_unbounded_array_v) - static inline T* allocate_new(RawAllocator&& alloc, size_t n) { - allocator_reference alloc_ref = ::OpenVic::memory::make_allocator_reference(alloc); - return static_cast(alloc_ref.allocate_node(sizeof(T) * n, alignof(T))); - } - - template - requires(!std::is_array_v) - static inline T* make_new(Args&&... args) { - return allocate_new(make_tracked_allocator(RawAllocator {}), std::forward(args)...); - } - - template - requires(std::is_unbounded_array_v) - static inline T* make_new(size_t n) { - return allocate_new(make_tracked_allocator(RawAllocator {}), n); - } - - template - requires(!std::is_array_v) - static inline void dealloc_delete(RawAllocator&& alloc, T* ptr) { - ptr->~T(); - allocator_reference alloc_ref = ::OpenVic::memory::make_allocator_reference(alloc); - alloc_ref.deallocate(ptr, sizeof(T), alignof(T)); - } - - template - requires(std::is_unbounded_array_v) - static inline void dealloc_delete(RawAllocator&& alloc, T* ptr, size_t n) { - std::destroy_n(ptr, n); - allocator_reference alloc_ref = ::OpenVic::memory::make_allocator_reference(alloc); - alloc_ref.deallocate(ptr, sizeof(T) * n, alignof(T)); - } - - template - requires(!std::is_array_v) - static inline void delete_at(T* ptr) { - dealloc_delete(make_tracked_allocator(RawAllocator {}), ptr); - } - - template - requires(std::is_unbounded_array_v) - static inline void delete_at(T* ptr, size_t n) { - dealloc_delete(make_tracked_allocator(RawAllocator {}), ptr, n); - } - - template - requires(!std::is_array_v) - static inline unique_ptr make_unique(Args&&... args) { - return allocate_unique(RawAllocator {}, std::forward(args)...); - } - - template - requires(std::is_unbounded_array_v) - static inline unique_ptr make_unique(size_t n) { - return allocate_unique(make_tracked_allocator(RawAllocator {}), n); - } - - template - requires(!std::is_array_v) - static inline unique_ptr make_unique_for_overwrite() { - using raw_ptr = std::unique_ptr>>; - - tracker alloc = make_tracked_allocator(RawAllocator {}); - auto memory = alloc.allocate_node(sizeof(T), alignof(T)); - // raw_ptr deallocates memory in case of constructor exception - raw_ptr result(static_cast(memory), { alloc }); - // pass ownership to return value using a deleter that calls destructor - return { result.release(), { alloc } }; - } - - template - requires(std::is_unbounded_array_v) - static inline unique_ptr make_unique_for_overwrite(size_t size) { - using raw_ptr = std::unique_ptr>>; - - tracker alloc = make_tracked_allocator(RawAllocator {}); - auto memory = alloc.allocate_array(size, sizeof(T), alignof(T)); - // raw_ptr deallocates memory in case of constructor exception - raw_ptr result(static_cast(memory), { alloc, size }); - // pass ownership to return value using a deleter that calls destructor - return { result.release(), { alloc, size } }; - } - - template - std::shared_ptr allocate_shared(RawAllocator&& alloc, Args&&... args) { - return foonathan::memory::allocate_shared( - make_tracked_allocator(std::forward(alloc)), std::forward(args)... - ); - } - - template - static inline std::shared_ptr make_shared(Args&&... args) { - return allocate_shared(RawAllocator {}, std::forward(args)...); - } - - template - using vector = foonathan::memory::vector>; - - template - using deque = OpenVic::utility::memory::deque>; - - template - using basic_string = - std::basic_string, foonathan::memory::std_allocator>>; - - template - using string_alloc = basic_string; - - using string = string_alloc<>; - - template - using wstring_alloc = basic_string; - - using wstring = wstring_alloc<>; - - template - using colony = plf::colony>>; - - template> - using stack = std::stack; - - template> - using queue = std::queue; - - template, class RawAllocator = foonathan::memory::default_allocator> - using basic_stringstream = - std::basic_stringstream>>; - - template - using stringstream_alloc = basic_stringstream, RawAllocator>; - template - using wstringstream_alloc = basic_stringstream, RawAllocator>; - - using stringstream = stringstream_alloc<>; - using wstringstream = wstringstream_alloc<>; - - template - using cow_ptr = cow_ptr>>; - - template - using cow_vector = cow_vector>>; - - namespace fmt { - template - using basic_memory_buffer = ::fmt::basic_memory_buffer< - T, ::fmt::inline_buffer_size, foonathan::memory::std_allocator>>; - - inline static memory::string vformat(::fmt::string_view fmt, ::fmt::format_args args) { - memory::fmt::basic_memory_buffer buf {}; - ::fmt::vformat_to(std::back_inserter(buf), fmt, args); - return memory::string(buf.data(), buf.size()); - } - - template - memory::string format(::fmt::string_view fmt, const Args&... args) { - return memory::fmt::vformat(fmt, ::fmt::make_format_args(args...)); - } - } -} diff --git a/src/openvic-simulation/utility/DequeMemory.hpp b/src/openvic-simulation/utility/DequeMemory.hpp deleted file mode 100644 index 91466539b..000000000 --- a/src/openvic-simulation/utility/DequeMemory.hpp +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#include - -#include "openvic-simulation/core/portable/Deque.hpp" - -#include -#include - -namespace OpenVic::utility::memory { - template - FOONATHAN_ALIAS_TEMPLATE(deque, OpenVic::utility::deque>); - - template - FOONATHAN_ALIAS_TEMPLATE(deque_scoped_alloc, OpenVic::utility::deque>>); -} diff --git a/src/openvic-simulation/utility/Getters.hpp b/src/openvic-simulation/utility/Getters.hpp index 33a660caf..147ce68d8 100644 --- a/src/openvic-simulation/utility/Getters.hpp +++ b/src/openvic-simulation/utility/Getters.hpp @@ -3,13 +3,12 @@ #include #include #include -#include #include #include +#include "openvic-simulation/core/memory/String.hpp" #include "openvic-simulation/core/portable/ForwardableSpan.hpp" // IWYU pragma: keep for SPAN_PROPERTY #include "openvic-simulation/core/Typedefs.hpp" // IWYU pragma: keep -#include "openvic-simulation/utility/Containers.hpp" #include "openvic-simulation/core/template/Concepts.hpp" namespace OpenVic::utility { diff --git a/src/openvic-simulation/utility/Logger.hpp b/src/openvic-simulation/utility/Logger.hpp index 11bac05cb..d54d11fec 100644 --- a/src/openvic-simulation/utility/Logger.hpp +++ b/src/openvic-simulation/utility/Logger.hpp @@ -9,7 +9,8 @@ #include #include -#include "openvic-simulation/utility/Containers.hpp" +#include "openvic-simulation/core/memory/Stack.hpp" +#include "openvic-simulation/core/memory/String.hpp" namespace spdlog { template diff --git a/src/openvic-simulation/utility/ThreadPool.cpp b/src/openvic-simulation/utility/ThreadPool.cpp index 2fc169548..13f22df4c 100644 --- a/src/openvic-simulation/utility/ThreadPool.cpp +++ b/src/openvic-simulation/utility/ThreadPool.cpp @@ -8,7 +8,6 @@ #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" #include "openvic-simulation/types/TypedIndices.hpp" #include "openvic-simulation/types/TypedSpan.hpp" -#include "openvic-simulation/utility/Containers.hpp" using namespace OpenVic; diff --git a/src/openvic-simulation/utility/ThreadPool.hpp b/src/openvic-simulation/utility/ThreadPool.hpp index 5b37f0c96..a0043e54c 100644 --- a/src/openvic-simulation/utility/ThreadPool.hpp +++ b/src/openvic-simulation/utility/ThreadPool.hpp @@ -7,7 +7,7 @@ #include "openvic-simulation/population/PopValuesFromProvince.hpp" #include "openvic-simulation/types/Date.hpp" -#include "openvic-simulation/utility/Containers.hpp" +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/core/portable/ForwardableSpan.hpp" #include "openvic-simulation/core/random/RandomGenerator.hpp" diff --git a/tests/src/pathfinding/AStarPathing.cpp b/tests/src/pathfinding/AStarPathing.cpp index d73d68978..0873e2a07 100644 --- a/tests/src/pathfinding/AStarPathing.cpp +++ b/tests/src/pathfinding/AStarPathing.cpp @@ -3,7 +3,6 @@ #include "openvic-simulation/pathfinding/PointMap.hpp" #include "openvic-simulation/types/Vector.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "Helper.hpp" #include "pathfinding/Pathing.hpp" diff --git a/tests/src/pathfinding/FringePathing.cpp b/tests/src/pathfinding/FringePathing.cpp index 252330914..11d22cce0 100644 --- a/tests/src/pathfinding/FringePathing.cpp +++ b/tests/src/pathfinding/FringePathing.cpp @@ -3,7 +3,6 @@ #include "openvic-simulation/pathfinding/PointMap.hpp" #include "openvic-simulation/types/Vector.hpp" #include "openvic-simulation/types/fixed_point/FixedPoint.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "Helper.hpp" #include "pathfinding/Pathing.hpp" diff --git a/tests/src/pathfinding/Pathing.hpp b/tests/src/pathfinding/Pathing.hpp index 61e390b45..4504289d1 100644 --- a/tests/src/pathfinding/Pathing.hpp +++ b/tests/src/pathfinding/Pathing.hpp @@ -4,9 +4,9 @@ #include +#include "openvic-simulation/core/memory/Vector.hpp" #include "openvic-simulation/pathfinding/PointMap.hpp" #include "openvic-simulation/types/Vector.hpp" -#include "openvic-simulation/utility/Containers.hpp" #include "Helper.hpp" #include