On 11/29/18 9:09 AM, Jonathan Wakely wrote:
On 29/11/18 08:47 -0500, Ed Smith-Rowland wrote:
Fixed with 266616.
Thanks!
Index: include/std/deque
===================================================================
--- include/std/deque (revision 266567)
+++ include/std/deque (working copy)
@@ -58,6 +58,7 @@
#pragma GCC system_header
#include <bits/stl_algobase.h>
+#include <bits/stl_algo.h> // For remove and remove_if
Please only include <bits/stl_algo.h> when __cplusplus > 201703L
otherwise we include hundreds of kilobytes of code just for these tiny
functions that aren't even defined in the default C++14 dialect.
Done with 266624.
Ed
At some point I'll split std::remove and std::remove_if into their own
header, and we can just include that instead
2018-11-29 Edward Smith-Rowland <3dw...@verizon.net>
Only include bits/stl_algo.h for C++20.
* include/std/deque: Only include bits/stl_algo.h for C++20.
* include/std/string: Ditto.
* include/std/vector: Ditto.
Index: include/std/deque
===================================================================
--- include/std/deque (revision 266616)
+++ include/std/deque (working copy)
@@ -58,7 +58,9 @@
#pragma GCC system_header
#include <bits/stl_algobase.h>
-#include <bits/stl_algo.h> // For remove and remove_if
+#if __cplusplus > 201703L
+# include <bits/stl_algo.h> // For remove and remove_if
+#endif // C++20
#include <bits/allocator.h>
#include <bits/stl_construct.h>
#include <bits/stl_uninitialized.h>
Index: include/std/string
===================================================================
--- include/std/string (revision 266616)
+++ include/std/string (working copy)
@@ -48,7 +48,9 @@
#include <bits/stl_function.h> // For less
#include <ext/numeric_traits.h>
#include <bits/stl_algobase.h>
-#include <bits/stl_algo.h> // For remove and remove_if
+#if __cplusplus > 201703L
+# include <bits/stl_algo.h> // For remove and remove_if
+#endif // C++20
#include <bits/range_access.h>
#include <bits/basic_string.h>
#include <bits/basic_string.tcc>
Index: include/std/vector
===================================================================
--- include/std/vector (revision 266616)
+++ include/std/vector (working copy)
@@ -58,7 +58,9 @@
#pragma GCC system_header
#include <bits/stl_algobase.h>
-#include <bits/stl_algo.h> // For remove and remove_if
+#if __cplusplus > 201703L
+# include <bits/stl_algo.h> // For remove and remove_if
+#endif // C++20
#include <bits/allocator.h>
#include <bits/stl_construct.h>
#include <bits/stl_uninitialized.h>