treewide: Remove redundant inline

constexpr implies inline for functions

Change-Id: I562d7b11702a5feb3a2eeb210a296910b11bce7a
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/include/stdplus/raw.hpp b/include/stdplus/raw.hpp
index c572744..a5206c0 100644
--- a/include/stdplus/raw.hpp
+++ b/include/stdplus/raw.hpp
@@ -54,7 +54,7 @@
  *  @return True if they are the same, false otherwise
  */
 template <typename A, typename B>
-inline constexpr bool equal(const A& a, const B& b) noexcept
+constexpr bool equal(const A& a, const B& b) noexcept
 {
     static_assert(std::is_trivially_copyable_v<A>);
     static_assert(std::is_trivially_copyable_v<B>);
@@ -71,7 +71,7 @@
  */
 #define STDPLUS_COPY_FROM(func, comp)                                          \
     template <typename T, typename Container>                                  \
-    inline constexpr T func(const Container& c)                                \
+    constexpr T func(const Container& c)                                       \
     {                                                                          \
         static_assert(std::is_trivially_copyable_v<T>);                        \
         static_assert(detail::trivialContainer<Container>);                    \
@@ -109,7 +109,7 @@
     template <typename T, typename A = stdplus::raw::UnAligned,                \
               typename Container,                                              \
               typename Tp = detail::copyConst<T, detail::dataType<Container>>> \
-    inline constexpr Tp& func(Container&& c)                                   \
+    constexpr Tp& func(Container&& c)                                          \
     {                                                                          \
         static_assert(std::is_trivially_copyable_v<Tp>);                       \
         static_assert(detail::trivialContainer<Container>);                    \
@@ -134,7 +134,7 @@
  *  @return The copyable type with data populated
  */
 template <typename T, typename CharT>
-inline constexpr T extract(std::basic_string_view<CharT>& data)
+constexpr T extract(std::basic_string_view<CharT>& data)
 {
     T ret = copyFrom<T>(data);
     static_assert(sizeof(T) % sizeof(CharT) == 0);
@@ -143,7 +143,7 @@
 }
 template <typename T, typename IntT,
           typename = std::enable_if_t<std::is_trivially_copyable_v<IntT>>>
-inline constexpr T extract(std::span<IntT>& data)
+constexpr T extract(std::span<IntT>& data)
 {
     T ret = copyFrom<T>(data);
     static_assert(sizeof(T) % sizeof(IntT) == 0);
@@ -158,7 +158,7 @@
  *  @return A reference to the data
  */
 template <typename T, typename A = stdplus::raw::UnAligned, typename CharT>
-inline constexpr const T& extractRef(std::basic_string_view<CharT>& data)
+constexpr const T& extractRef(std::basic_string_view<CharT>& data)
 {
     const T& ret = refFrom<T, A>(data);
     static_assert(sizeof(T) % sizeof(CharT) == 0);
@@ -168,7 +168,7 @@
 template <typename T, typename A = stdplus::raw::UnAligned, typename IntT,
           typename = std::enable_if_t<std::is_trivially_copyable_v<IntT>>,
           typename Tp = detail::copyConst<T, IntT>>
-inline constexpr Tp& extractRef(std::span<IntT>& data)
+constexpr Tp& extractRef(std::span<IntT>& data)
 {
     Tp& ret = refFrom<Tp, A>(data);
     static_assert(sizeof(Tp) % sizeof(IntT) == 0);
@@ -183,8 +183,7 @@
  *  @return A view over the input with the given output integral type
  */
 template <typename CharT, typename T>
-inline constexpr std::enable_if_t<!detail::hasData<T>,
-                                  std::basic_string_view<CharT>>
+constexpr std::enable_if_t<!detail::hasData<T>, std::basic_string_view<CharT>>
     asView(const T& t) noexcept
 {
     static_assert(std::is_trivially_copyable_v<T>);
@@ -193,8 +192,8 @@
 }
 
 template <typename CharT, typename Container>
-inline constexpr std::enable_if_t<detail::hasData<Container>,
-                                  std::basic_string_view<CharT>>
+constexpr std::enable_if_t<detail::hasData<Container>,
+                           std::basic_string_view<CharT>>
     asView(const Container& c) noexcept
 {
     static_assert(detail::trivialContainer<Container>);
@@ -207,7 +206,7 @@
           typename = std::enable_if_t<std::is_trivially_copyable_v<IntT>>,
           typename = std::enable_if_t<!detail::hasData<T>>,
           typename IntTp = detail::copyConst<IntT, T>>
-inline constexpr std::span<IntTp> asSpan(T& t) noexcept
+constexpr std::span<IntTp> asSpan(T& t) noexcept
 {
     static_assert(std::is_trivially_copyable_v<T>);
     static_assert(sizeof(T) % sizeof(IntTp) == 0);
@@ -217,7 +216,7 @@
           typename = std::enable_if_t<std::is_trivially_copyable_v<IntT>>,
           typename = std::enable_if_t<detail::hasData<Container>>,
           typename IntTp = detail::copyConst<IntT, detail::dataType<Container>>>
-inline constexpr std::span<IntTp> asSpan(Container&& c) noexcept
+constexpr std::span<IntTp> asSpan(Container&& c) noexcept
 {
     static_assert(detail::trivialContainer<Container>);
     static_assert(sizeof(*std::data(c)) % sizeof(IntTp) == 0);
diff --git a/include/stdplus/zstring.hpp b/include/stdplus/zstring.hpp
index 2612b09..694eeaf 100644
--- a/include/stdplus/zstring.hpp
+++ b/include/stdplus/zstring.hpp
@@ -84,7 +84,7 @@
     using size_type = std::size_t;
 
     template <typename T, size_type N>
-    inline constexpr basic_zstring(T (&str)[N])
+    constexpr basic_zstring(T (&str)[N])
 #ifdef NDEBUG
         noexcept
 #endif
@@ -96,14 +96,14 @@
 #endif
     }
     template <typename T, std::enable_if_t<std::is_pointer_v<T>, bool> = true>
-    inline constexpr basic_zstring(T str) noexcept : data_(str)
+    constexpr basic_zstring(T str) noexcept : data_(str)
     {
     }
     template <typename T,
               std::enable_if_t<detail::same_string<std::remove_cvref_t<T>,
                                                    decay_t, Traits>::value,
                                bool> = true>
-    inline constexpr basic_zstring(T&& str)
+    constexpr basic_zstring(T&& str)
 #ifdef NDEBUG
         noexcept
 #endif
@@ -115,25 +115,24 @@
 #endif
     }
 
-    inline constexpr
-        operator basic_zstring<const CharT, Traits>() const noexcept
+    constexpr operator basic_zstring<const CharT, Traits>() const noexcept
     {
         return basic_zstring<const CharT, Traits>(data_);
     }
 
-    inline constexpr reference operator[](size_type pos) const noexcept
+    constexpr reference operator[](size_type pos) const noexcept
     {
         return data_[pos];
     }
-    inline constexpr reference front() const noexcept
+    constexpr reference front() const noexcept
     {
         return data_[0];
     }
-    inline constexpr pointer data() const noexcept
+    constexpr pointer data() const noexcept
     {
         return data_;
     }
-    inline constexpr const_pointer c_str() const noexcept
+    constexpr const_pointer c_str() const noexcept
     {
         return data_;
     }
@@ -142,11 +141,11 @@
         return data_ == nullptr || data_[0] == '\0';
     }
 
-    inline constexpr basic_zstring suffix(size_type size) const noexcept
+    constexpr basic_zstring suffix(size_type size) const noexcept
     {
         return data_ + size;
     }
-    inline constexpr basic_zstring<const CharT, Traits>
+    constexpr basic_zstring<const CharT, Traits>
         csuffix(size_type size) const noexcept
     {
         return data_ + size;
@@ -199,30 +198,29 @@
     }
 
     template <typename CharT1>
-    inline constexpr Traits::comparison_category
+    constexpr Traits::comparison_category
         operator<=>(basic_zstring<CharT1, Traits> rhs) const noexcept
     {
         return compare(rhs.data()) <=> 0;
     }
     template <typename T, std::enable_if_t<std::is_pointer_v<T>, bool> = true>
-    inline constexpr Traits::comparison_category
-        operator<=>(T rhs) const noexcept
+    constexpr Traits::comparison_category operator<=>(T rhs) const noexcept
     {
         return compare(rhs) <=> 0;
     }
     template <typename Allocator>
-    inline constexpr Traits::comparison_category operator<=>(
+    constexpr Traits::comparison_category operator<=>(
         const std::basic_string<decay_t, Traits, Allocator>& rhs) const noexcept
     {
         return compare(rhs.data(), rhs.size()) <=> 0;
     }
-    inline constexpr Traits::comparison_category
+    constexpr Traits::comparison_category
         operator<=>(std::basic_string_view<decay_t, Traits> rhs) const noexcept
     {
         return compare(rhs.data(), rhs.size()) <=> 0;
     }
 
-    inline constexpr bool operator==(const auto& rhs) const noexcept
+    constexpr bool operator==(const auto& rhs) const noexcept
     {
         return (*this <=> rhs) == 0;
     }
diff --git a/include/stdplus/zstring_view.hpp b/include/stdplus/zstring_view.hpp
index 2a8de3c..3ae13b3 100644
--- a/include/stdplus/zstring_view.hpp
+++ b/include/stdplus/zstring_view.hpp
@@ -21,7 +21,7 @@
 {
 
 template <typename CharT, typename Traits>
-inline constexpr auto
+constexpr auto
     unsafe_zstring_view(std::basic_string_view<CharT, Traits> sv) noexcept
 {
     using SV = basic_zstring_view<CharT, Traits>;
@@ -75,7 +75,7 @@
     static constexpr size_type npos = string_view_base::npos;
 
     template <typename T, size_type N>
-    inline constexpr basic_zstring_view(T (&str)[N])
+    constexpr basic_zstring_view(T (&str)[N])
 #ifdef NDEBUG
         noexcept :
         sv(str)
@@ -86,13 +86,13 @@
     {
     }
     template <typename T, std::enable_if_t<std::is_pointer_v<T>, bool> = true>
-    inline constexpr basic_zstring_view(T str) noexcept : sv(str)
+    constexpr basic_zstring_view(T str) noexcept : sv(str)
     {
     }
     template <typename T,
               std::enable_if_t<detail::same_string<T, CharT, Traits>::value,
                                bool> = true>
-    inline constexpr basic_zstring_view(const T& str)
+    constexpr basic_zstring_view(const T& str)
 #ifdef NDEBUG
         noexcept :
         sv(str)
@@ -107,132 +107,131 @@
         typename T,
         std::enable_if_t<std::is_same_v<value_type, std::remove_const_t<T>>,
                          bool> = true>
-    inline constexpr basic_zstring_view(basic_zstring<T, Traits> str) noexcept :
+    constexpr basic_zstring_view(basic_zstring<T, Traits> str) noexcept :
         sv(str.data())
     {
     }
 
-    inline constexpr operator string_view_base() const noexcept
+    constexpr operator string_view_base() const noexcept
     {
         return sv;
     }
 
-    inline constexpr operator zstring_base() const noexcept
+    constexpr operator zstring_base() const noexcept
     {
         return zstring_base(data());
     }
 
-    inline constexpr const_iterator begin() const noexcept
+    constexpr const_iterator begin() const noexcept
     {
         return sv.begin();
     }
-    inline constexpr const_iterator end() const noexcept
+    constexpr const_iterator end() const noexcept
     {
         return sv.end();
     }
-    inline constexpr const_reverse_iterator rbegin() const noexcept
+    constexpr const_reverse_iterator rbegin() const noexcept
     {
         return sv.rbegin();
     }
-    inline constexpr const_reverse_iterator rend() const noexcept
+    constexpr const_reverse_iterator rend() const noexcept
     {
         return sv.rend();
     }
 
-    inline constexpr const_reference operator[](size_type pos) const noexcept
+    constexpr const_reference operator[](size_type pos) const noexcept
     {
         return sv[pos];
     }
-    inline constexpr const_reference at(size_type pos) const
+    constexpr const_reference at(size_type pos) const
     {
         return sv.at(pos);
     }
-    inline constexpr const_reference front() const noexcept
+    constexpr const_reference front() const noexcept
     {
         return sv.front();
     }
-    inline constexpr const_reference back() const noexcept
+    constexpr const_reference back() const noexcept
     {
         return sv.back();
     }
-    inline constexpr const_pointer data() const noexcept
+    constexpr const_pointer data() const noexcept
     {
         return sv.data();
     }
 
-    inline constexpr size_type size() const noexcept
+    constexpr size_type size() const noexcept
     {
         return sv.size();
     }
-    inline constexpr size_type length() const noexcept
+    constexpr size_type length() const noexcept
     {
         return sv.length();
     }
-    inline constexpr size_type max_size() noexcept
+    constexpr size_type max_size() noexcept
     {
         return sv.max_size();
     }
-    [[nodiscard]] inline constexpr bool empty() const noexcept
+    [[nodiscard]] constexpr bool empty() const noexcept
     {
         return sv.empty();
     }
 
-    inline constexpr void swap(basic_zstring_view& v) noexcept
+    constexpr void swap(basic_zstring_view& v) noexcept
     {
         sv.swap(v.sv);
     }
 
-    inline constexpr size_type copy(pointer dest, size_type count,
-                                    size_type pos = 0) const
+    constexpr size_type copy(pointer dest, size_type count,
+                             size_type pos = 0) const
     {
         return sv.copy(dest, count, pos);
     }
-    inline constexpr string_view_base substr(size_type pos = 0,
-                                             size_type count = npos) const
+    constexpr string_view_base substr(size_type pos = 0,
+                                      size_type count = npos) const
     {
         return sv.substr(pos, count);
     }
 
-    inline constexpr int compare(string_view_base v) const noexcept
+    constexpr int compare(string_view_base v) const noexcept
     {
         return sv.compare(v);
     }
-    inline constexpr int compare(size_type pos1, size_type count1,
-                                 string_view_base v) const
+    constexpr int compare(size_type pos1, size_type count1,
+                          string_view_base v) const
     {
         return sv.compare(pos1, count1, v);
     }
-    inline constexpr int compare(size_type pos1, size_type count1,
-                                 string_view_base v, size_type pos2,
-                                 size_type count2) const
+    constexpr int compare(size_type pos1, size_type count1, string_view_base v,
+                          size_type pos2, size_type count2) const
     {
         return sv.compare(pos1, count1, v, pos2, count2);
     }
-    inline constexpr int compare(const_pointer s) const
+    constexpr int compare(const_pointer s) const
     {
         return sv.compare(s);
     }
-    inline constexpr int compare(size_type pos1, size_type count1,
-                                 const_pointer s) const
+    constexpr int compare(size_type pos1, size_type count1,
+                          const_pointer s) const
     {
         return sv.compare(pos1, count1, s);
     }
-    inline constexpr int compare(size_type pos1, size_type count1,
-                                 const_pointer s, size_type count2) const
+    constexpr int compare(size_type pos1, size_type count1, const_pointer s,
+                          size_type count2) const
     {
         return sv.compare(pos1, count1, s, count2);
     }
 
 #define zstring_view_has(func)                                                 \
-    inline constexpr bool func(string_view_base sv) const noexcept             \
+    constexpr bool func(string_view_base sv) const noexcept                    \
     {                                                                          \
         return sv.func(sv);                                                    \
     }                                                                          \
-    inline constexpr bool func(value_type c) const noexcept                    \
+    constexpr bool func(value_type c) const noexcept                           \
     {                                                                          \
         return sv.func(c);                                                     \
     }                                                                          \
-    inline constexpr bool func(const_pointer s) const                          \
+    constexpr bool func(const_pointer s) const                                 \
     {                                                                          \
         return sv.func(s);                                                     \
     }
@@ -241,23 +240,22 @@
 #undef zstring_view_has
 
 #define zstring_view_find(func, def)                                           \
-    inline constexpr size_type func(string_view_base v, size_type pos = def)   \
+    constexpr size_type func(string_view_base v, size_type pos = def)          \
         const noexcept                                                         \
     {                                                                          \
         return sv.func(v, pos);                                                \
     }                                                                          \
-    inline constexpr size_type func(value_type ch, size_type pos = def)        \
+    constexpr size_type func(value_type ch, size_type pos = def)               \
         const noexcept                                                         \
     {                                                                          \
         return sv.func(ch, pos);                                               \
     }                                                                          \
-    inline constexpr size_type func(const_pointer s, size_type pos,            \
-                                    size_type count) const                     \
+    constexpr size_type func(const_pointer s, size_type pos, size_type count)  \
+        const                                                                  \
     {                                                                          \
         return sv.func(s, pos, count);                                         \
     }                                                                          \
-    inline constexpr size_type func(const_pointer s, size_type pos = def)      \
-        const                                                                  \
+    constexpr size_type func(const_pointer s, size_type pos = def) const       \
     {                                                                          \
         return sv.func(s, pos);                                                \
     }
@@ -269,7 +267,7 @@
     zstring_view_find(find_last_not_of, npos);
 #undef zstring_view_find
 
-    inline constexpr const_pointer c_str() const noexcept
+    constexpr const_pointer c_str() const noexcept
     {
         return sv.data();
     }
@@ -299,8 +297,7 @@
     struct unsafe
     {
     };
-    inline constexpr basic_zstring_view(unsafe, string_view_base sv) noexcept :
-        sv(sv)
+    constexpr basic_zstring_view(unsafe, string_view_base sv) noexcept : sv(sv)
     {
     }
     friend auto detail::unsafe_zstring_view<CharT, Traits>(string_view_base sv);
@@ -317,7 +314,7 @@
 namespace zstring_view_literals
 {
 template <detail::compile_zstring_view Str>
-inline constexpr auto operator"" _zsv() noexcept
+constexpr auto operator"" _zsv() noexcept
 {
     static_assert(Str.valid, "stdplus::zstring_view");
     return Str.getzsv();