zstring_view: Fix find functions

Change-Id: I5a3765f1a29531435fea49930c84890969f5dd8b
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/include/stdplus/zstring_view.hpp b/include/stdplus/zstring_view.hpp
index 616790d..2a8de3c 100644
--- a/include/stdplus/zstring_view.hpp
+++ b/include/stdplus/zstring_view.hpp
@@ -240,13 +240,13 @@
     zstring_view_has(ends_with);
 #undef zstring_view_has
 
-#define zstring_view_find(func)                                                \
-    inline constexpr size_type func(string_view_base v, size_type pos = 0)     \
+#define zstring_view_find(func, def)                                           \
+    inline 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 = 0)          \
+    inline constexpr size_type func(value_type ch, size_type pos = def)        \
         const noexcept                                                         \
     {                                                                          \
         return sv.func(ch, pos);                                               \
@@ -256,16 +256,17 @@
     {                                                                          \
         return sv.func(s, pos, count);                                         \
     }                                                                          \
-    inline constexpr size_type func(const_pointer s, size_type pos = 0) const  \
+    inline constexpr size_type func(const_pointer s, size_type pos = def)      \
+        const                                                                  \
     {                                                                          \
         return sv.func(s, pos);                                                \
     }
-    zstring_view_find(find);
-    zstring_view_find(rfind);
-    zstring_view_find(find_first_of);
-    zstring_view_find(find_last_of);
-    zstring_view_find(find_first_not_of);
-    zstring_view_find(find_last_not_of);
+    zstring_view_find(find, 0);
+    zstring_view_find(rfind, npos);
+    zstring_view_find(find_first_of, 0);
+    zstring_view_find(find_last_of, npos);
+    zstring_view_find(find_first_not_of, 0);
+    zstring_view_find(find_last_not_of, npos);
 #undef zstring_view_find
 
     inline constexpr const_pointer c_str() const noexcept
diff --git a/test/zstring_view.cpp b/test/zstring_view.cpp
index 14a1e04..40ad4d4 100644
--- a/test/zstring_view.cpp
+++ b/test/zstring_view.cpp
@@ -30,6 +30,10 @@
     char mut[] = "aa";
     auto s3 = zstring_view(mut);
 
+    EXPECT_EQ(1, s1.find('c'));
+    EXPECT_EQ(0, s3.find('a'));
+    EXPECT_EQ(1, s3.rfind('a'));
+
     EXPECT_NE(sv, s2);
     EXPECT_NE(s1, s2);
     EXPECT_EQ(s3, "aa");