diff --git a/include/stdplus/net/addr/ip.hpp b/include/stdplus/net/addr/ip.hpp
index 2236285..2dfcf83 100644
--- a/include/stdplus/net/addr/ip.hpp
+++ b/include/stdplus/net/addr/ip.hpp
@@ -471,7 +471,7 @@
     bool valid = true;
 
     template <typename CharT>
-    constexpr void compile(std::basic_string_view<CharT> sv) noexcept
+    consteval void compile(std::basic_string_view<CharT> sv) noexcept
     {
         try
         {
@@ -495,7 +495,7 @@
 {
     static inline void notNullTerminated() {}
 
-    constexpr CompileInAddr(const CharT (&str)[N]) noexcept
+    consteval CompileInAddr(const CharT (&str)[N]) noexcept
     {
         if (str[N - 1] != '\0')
             notNullTerminated();
@@ -506,7 +506,7 @@
 template <typename CharT, std::size_t N>
 struct CompileIn4Addr : CompileInAddr<In4Addr, CharT, N>
 {
-    constexpr CompileIn4Addr(const CharT (&str)[N]) noexcept :
+    consteval CompileIn4Addr(const CharT (&str)[N]) noexcept :
         CompileInAddr<In4Addr, CharT, N>(str)
     {}
 };
@@ -514,7 +514,7 @@
 template <typename CharT, std::size_t N>
 struct CompileIn6Addr : CompileInAddr<In6Addr, CharT, N>
 {
-    constexpr CompileIn6Addr(const CharT (&str)[N]) noexcept :
+    consteval CompileIn6Addr(const CharT (&str)[N]) noexcept :
         CompileInAddr<In6Addr, CharT, N>(str)
     {}
 };
@@ -522,7 +522,7 @@
 template <typename CharT, std::size_t N>
 struct CompileInAnyAddr : CompileInAddr<InAnyAddr, CharT, N>
 {
-    constexpr CompileInAnyAddr(const CharT (&str)[N]) noexcept :
+    consteval CompileInAnyAddr(const CharT (&str)[N]) noexcept :
         CompileInAddr<InAnyAddr, CharT, N>(str)
     {}
 };
diff --git a/include/stdplus/net/addr/subnet.hpp b/include/stdplus/net/addr/subnet.hpp
index 93fc226..e2da9d1 100644
--- a/include/stdplus/net/addr/subnet.hpp
+++ b/include/stdplus/net/addr/subnet.hpp
@@ -279,7 +279,7 @@
     Sub::Pfx pfx = 0;
 
     template <typename CharT>
-    constexpr void compile(std::basic_string_view<CharT> sv) noexcept
+    consteval void compile(std::basic_string_view<CharT> sv) noexcept
     {
         const auto pos = sv.rfind('/');
         if (pos == sv.npos)
@@ -302,7 +302,7 @@
 template <typename CharT, std::size_t N>
 struct CompileSubnet4 : CompileInAddr<Subnet4, CharT, N>
 {
-    constexpr CompileSubnet4(const CharT (&str)[N]) noexcept :
+    consteval CompileSubnet4(const CharT (&str)[N]) noexcept :
         CompileInAddr<Subnet4, CharT, N>(str)
     {}
 };
@@ -310,7 +310,7 @@
 template <typename CharT, std::size_t N>
 struct CompileSubnet6 : CompileInAddr<Subnet6, CharT, N>
 {
-    constexpr CompileSubnet6(const CharT (&str)[N]) noexcept :
+    consteval CompileSubnet6(const CharT (&str)[N]) noexcept :
         CompileInAddr<Subnet6, CharT, N>(str)
     {}
 };
@@ -318,7 +318,7 @@
 template <typename CharT, std::size_t N>
 struct CompileSubnetAny : CompileInAddr<SubnetAny, CharT, N>
 {
-    constexpr CompileSubnetAny(const CharT (&str)[N]) noexcept :
+    consteval CompileSubnetAny(const CharT (&str)[N]) noexcept :
         CompileInAddr<SubnetAny, CharT, N>(str)
     {}
 };
