CTL: utility.h, use ctl::swap in string (#1227)

* Add ctl utility.h

Implements forward, move, swap, and declval. This commit also adds a def
for nullptr_t to cxx.inc. We need it now because the CTL headers stopped
including anything from libc++, so we no longer get their basic types.

* Use ctl::swap in string

The STL spec says that swap is located in the string_view header anyawy.
Performance-wise this is a noop, but it’s slightly cleaner.
This commit is contained in:
Steven Dee (Jōshin) 2024-06-18 22:00:59 -07:00 committed by GitHub
parent a795017416
commit 9a5a13854d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 117 additions and 46 deletions

View file

@ -19,7 +19,6 @@
#include "ctl/string.h"
#include <__type_traits/is_same.h>
#include <__utility/move.h>
#include "libc/runtime/runtime.h"
#include "libc/str/str.h"
@ -211,7 +210,7 @@ main()
{
String s = "hello";
String s2 = std::move(s);
String s2 = ctl::move(s);
if (s2 != "hello")
return 47;
if (!s.empty())