Browse Source

stl: allow injecting sstream

skypjack 16 hours ago
parent
commit
a21b9caafa

+ 6 - 2
src/entt/stl/sstream.hpp

@@ -1,14 +1,18 @@
 #ifndef ENTT_STL_SSTREAM_HPP
 #define ENTT_STL_SSTREAM_HPP
 
-#include <sstream>
-
 /*! @cond ENTT_INTERNAL */
+#if __has_include(<entt/ext/stl/sstream.hpp>)
+#    include <entt/ext/stl/sstream.hpp>
+#else
+#    include <sstream>
+
 namespace entt::stl {
 
 using std::stringstream;
 
 } // namespace entt::stl
+#endif
 /*! @endcond */
 
 #endif

+ 4 - 0
test/entt/stl_ext/sstream.cpp

@@ -1,2 +1,6 @@
 #include <gtest/gtest.h>
 #include <entt/stl/sstream.hpp>
+
+TEST(SStream, HasInclude) {
+    static_assert(entt::stl::entt_ext_sstream, "Header not properly included");
+}

+ 13 - 0
test/include/entt/ext/stl/sstream.hpp

@@ -0,0 +1,13 @@
+#ifndef ENTT_EXT_STL_SSTREAM_HPP
+#define ENTT_EXT_STL_SSTREAM_HPP
+
+/*! @cond ENTT_INTERNAL */
+#include <sstream>
+
+namespace entt::stl {
+using namespace std;
+static constexpr auto entt_ext_sstream = true;
+} // namespace entt::stl
+/*! @endcond */
+
+#endif

+ 24 - 0
test/include/entt/ext/stl/tuple.hpp

@@ -0,0 +1,24 @@
+#ifndef ENTT_STL_TUPLE_HPP
+#define ENTT_STL_TUPLE_HPP
+
+#include <tuple>
+
+/*! @cond ENTT_INTERNAL */
+namespace entt::stl {
+
+using std::apply;
+using std::forward_as_tuple;
+using std::get;
+using std::make_from_tuple;
+using std::make_tuple;
+using std::tuple;
+using std::tuple_cat;
+using std::tuple_element;
+using std::tuple_element_t;
+using std::tuple_size;
+using std::tuple_size_v;
+
+} // namespace entt::stl
+/*! @endcond */
+
+#endif