diff --git a/CMakeLists.txt b/CMakeLists.txt index 45cf2ab91..2b5afb46c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -206,6 +206,7 @@ if(ENTT_INCLUDE_HEADERS) stl/iterator.hpp stl/limits.hpp stl/memory.hpp + stl/string.hpp stl/tuple.hpp stl/type_traits.hpp stl/utility.hpp diff --git a/src/entt/entt.hpp b/src/entt/entt.hpp index fb25f12d8..d5fea2e43 100644 --- a/src/entt/entt.hpp +++ b/src/entt/entt.hpp @@ -80,6 +80,7 @@ namespace entt::stl {} #include "stl/iterator.hpp" #include "stl/limits.hpp" #include "stl/memory.hpp" +#include "stl/string.hpp" #include "stl/tuple.hpp" #include "stl/type_traits.hpp" #include "stl/utility.hpp" diff --git a/src/entt/stl/string.hpp b/src/entt/stl/string.hpp new file mode 100644 index 000000000..08e65c666 --- /dev/null +++ b/src/entt/stl/string.hpp @@ -0,0 +1,14 @@ +#ifndef ENTT_STL_STRING_HPP +#define ENTT_STL_STRING_HPP + +#include + +/*! @cond ENTT_INTERNAL */ +namespace entt::stl { + +using std::string; + +} // namespace entt::stl +/*! @endcond */ + +#endif diff --git a/src/entt/tools/davey.hpp b/src/entt/tools/davey.hpp index 901b28084..d54eb534e 100644 --- a/src/entt/tools/davey.hpp +++ b/src/entt/tools/davey.hpp @@ -3,7 +3,6 @@ #include #include -#include #include "../config/config.h" #include "../entity/mixin.hpp" #include "../entity/registry.hpp" @@ -16,6 +15,7 @@ #include "../meta/pointer.hpp" #include "../meta/resolve.hpp" #include "../stl/cstdint.hpp" +#include "../stl/string.hpp" #if __has_include() # include @@ -30,13 +30,13 @@ template static void present_element(const meta_any &obj, OnEntity on_entity) { for([[maybe_unused]] const auto [id, data]: obj.type().data()) { const auto elem = data.get(obj); - const std::string name = data.name().empty() ? std::string{data.type().info().name()} : std::string{data.name()}; + const stl::string name = data.name().empty() ? stl::string{data.type().info().name()} : stl::string{data.name()}; const char *const label = name.c_str(); if(auto type = data.type(); type.info() == type_id()) { ImGui::Text("%s: %s", label, elem.template cast()); - } else if(type.info() == type_id()) { - ImGui::Text("%s: %s", label, elem.template cast().data()); + } else if(type.info() == type_id()) { + ImGui::Text("%s: %s", label, elem.template cast().data()); } else if(type.info() == type_id()) { if(const auto entt = elem.template cast(); entt == null) { ImGui::Text("%s: %s", label, "null"); @@ -131,7 +131,7 @@ static void present_element(const meta_any &obj, OnEntity on_entity) { ImGui::TreePop(); } } else { - const std::string underlying_type{data.type().info().name()}; + const stl::string underlying_type{data.type().info().name()}; ImGui::Text("%s: %s", label, underlying_type.data()); } } @@ -171,7 +171,7 @@ static void present_entity(const meta_ctx &ctx, const Entity entt, const It from for(auto it = from; it != to; ++it) { if(const auto &storage = it->second; storage.contains(entt)) { if(auto type = resolve(ctx, storage.info()); type) { - const std::string name = type.name().empty() ? std::string{storage.info().name()} : std::string{type.name()}; + const stl::string name = type.name().empty() ? stl::string{storage.info().name()} : stl::string{type.name()}; const char *const label = name.c_str(); if(ImGui::TreeNode(&storage.info(), "%s", label)) { @@ -187,7 +187,7 @@ static void present_entity(const meta_ctx &ctx, const Entity entt, const It from ImGui::TreePop(); } } else { - const std::string name{storage.info().name()}; + const stl::string name{storage.info().name()}; ImGui::Text("%s", name.data()); } } @@ -206,7 +206,7 @@ static void present_view(const meta_ctx &ctx, const basic_view, ex if(ImGui::TreeNode(&type_id(), "%d [%d/%d]", to_integral(entt), to_entity(entt), to_version(entt))) { for(const auto *storage: range) { if(auto type = resolve(ctx, storage->info()); type) { - const std::string name = type.name().empty() ? std::string{storage->info().name()} : std::string{type.name()}; + const stl::string name = type.name().empty() ? stl::string{storage->info().name()} : stl::string{type.name()}; const char *const label = name.c_str(); if(ImGui::TreeNode(&storage->info(), "%s", label)) { @@ -219,7 +219,7 @@ static void present_view(const meta_ctx &ctx, const basic_view, ex ImGui::TreePop(); } } else { - const std::string name{storage->info().name()}; + const stl::string name{storage->info().name()}; ImGui::Text("%s", name.data()); } } @@ -312,7 +312,7 @@ void davey(const meta_ctx &ctx, const basic_registry ®istr if(ImGui::BeginTabItem("Storage")) { for([[maybe_unused]] auto [id, storage]: registry.storage()) { const auto type = resolve(ctx, storage.info()); - const std::string name = type.name().empty() ? std::string{storage.info().name()} : std::string{type.name()}; + const stl::string name = type.name().empty() ? stl::string{storage.info().name()} : stl::string{type.name()}; const char *const label = name.c_str(); if(ImGui::TreeNode(&storage.info(), "%s (%zu)", label, storage.size())) {