meson: fix -werror, tests and format

Dependent projects are compiled with -werror and failing because of this
dependency.

For example phosphor-bmc-code-mgmt.

```
../subprojects/stdplus/include/stdplus/net/addr/ip.hpp:550:26: error: space between quotes and suffix is deprecated in C++23 [-Werror=deprecated-literal-operator]
  550 | constexpr auto operator"" _ip() noexcept
      |                          ^~
      |                          --
```

test/io_uring.cpp had to be fixed because there was an access to an
optional which had been ```.reset()``` previously.

Tested: Unit Tests Pass

Change-Id: Iae8bff96cf69a82aea8c1964cfd35908946d7f47
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/include/stdplus/net/addr/ip.hpp b/include/stdplus/net/addr/ip.hpp
index dae3c15..711d3d5 100644
--- a/include/stdplus/net/addr/ip.hpp
+++ b/include/stdplus/net/addr/ip.hpp
@@ -533,21 +533,21 @@
 {
 
 template <detail::CompileIn4Addr Str>
-constexpr auto operator"" _ip4() noexcept
+constexpr auto operator""_ip4() noexcept
 {
     static_assert(Str.valid, "stdplus::In4Addr");
     return Str.addr;
 }
 
 template <detail::CompileIn6Addr Str>
-constexpr auto operator"" _ip6() noexcept
+constexpr auto operator""_ip6() noexcept
 {
     static_assert(Str.valid, "stdplus::In6Addr");
     return Str.addr;
 }
 
 template <detail::CompileInAnyAddr Str>
-constexpr auto operator"" _ip() noexcept
+constexpr auto operator""_ip() noexcept
 {
     static_assert(Str.valid, "stdplus::InAnyAddr");
     return Str.v4 ? InAnyAddr(Str.u.addr4) : InAnyAddr(Str.u.addr6);
diff --git a/include/stdplus/net/addr/subnet.hpp b/include/stdplus/net/addr/subnet.hpp
index a28b3f6..b5e5731 100644
--- a/include/stdplus/net/addr/subnet.hpp
+++ b/include/stdplus/net/addr/subnet.hpp
@@ -330,21 +330,21 @@
 {
 
 template <detail::CompileSubnet4 Str>
-constexpr auto operator"" _sub4() noexcept
+constexpr auto operator""_sub4() noexcept
 {
     static_assert(Str.valid, "stdplus::Subnet4");
     return Subnet4(Str.addr, Str.pfx);
 }
 
 template <detail::CompileSubnet6 Str>
-constexpr auto operator"" _sub6() noexcept
+constexpr auto operator""_sub6() noexcept
 {
     static_assert(Str.valid, "stdplus::Subnet6");
     return Subnet6(Str.addr, Str.pfx);
 }
 
 template <detail::CompileSubnetAny Str>
-constexpr auto operator"" _sub() noexcept
+constexpr auto operator""_sub() noexcept
 {
     static_assert(Str.valid, "stdplus::SubnetAny");
     return Str.v4 ? SubnetAny(Str.u.addr4, Str.pfx)
diff --git a/include/stdplus/zstring_view.hpp b/include/stdplus/zstring_view.hpp
index 4be31c3..809c2a5 100644
--- a/include/stdplus/zstring_view.hpp
+++ b/include/stdplus/zstring_view.hpp
@@ -309,7 +309,7 @@
 inline namespace zstring_view_literals
 {
 template <detail::compile_zstring_view Str>
-constexpr auto operator"" _zsv() noexcept
+constexpr auto operator""_zsv() noexcept
 {
     static_assert(Str.valid, "stdplus::zstring_view");
     return Str.getzsv();
diff --git a/meson.build b/meson.build
index 08de909..49d7575 100644
--- a/meson.build
+++ b/meson.build
@@ -5,6 +5,7 @@
     meson_version: '>=1.1.1',
     default_options: [
         'warning_level=3',
+        'werror=true',
         'cpp_std=c++23',
         'tests=' + (meson.is_subproject() ? 'disabled' : 'auto'),
         'examples=' + (meson.is_subproject() ? 'false' : 'true'),
diff --git a/test/fd/fmt.cpp b/test/fd/fmt.cpp
index bdac7a4..cf4a319 100644
--- a/test/fd/fmt.cpp
+++ b/test/fd/fmt.cpp
@@ -27,7 +27,7 @@
         buf.flush();
 
         EXPECT_EQ(6, fd.lseek(0, Whence::Cur));
-        buf.append(FMT_COMPILE("{}"), std::string(2050, 'a'));
+        buf.append("{}", std::string(2050, 'a'));
         EXPECT_EQ(6, fd.lseek(0, Whence::Cur));
         buf.append("{}", std::string(2050, 'a'));
         EXPECT_EQ(4106, fd.lseek(0, Whence::Cur));
diff --git a/test/io_uring.cpp b/test/io_uring.cpp
index 7a646e2..54b9cef 100644
--- a/test/io_uring.cpp
+++ b/test/io_uring.cpp
@@ -264,9 +264,11 @@
     testFdWrite(*fh, IOSQE_FIXED_FILE);
 
     // Without registration we should only be able to write to the regular fd
+    int old_fd = *fh;
     fh.reset();
     testFdWrite(STDERR_FILENO, 0);
-    testFdWrite(*fh, IOSQE_FIXED_FILE, -EBADF);
+    testFdWrite(STDOUT_FILENO, IOSQE_FIXED_FILE, -EBADF);
+    testFdWrite(old_fd, IOSQE_FIXED_FILE, -EBADF);
 
     std::vector<IoUring::FileHandle> fhs;
     EXPECT_LT(ring.getFiles().size(), 9);