zstring: Fix char array conversion
We don't want to assume the entire char array is used for strings,
otherwise perfectly valid buffers from C are unusable as they always
hold less than or equal to the buffer size of string.
Change-Id: I1354d63b1aa64995ec245edb876fdf6e69be554a
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/zstring.cpp b/src/zstring.cpp
index 660b81c..ccddc83 100644
--- a/src/zstring.cpp
+++ b/src/zstring.cpp
@@ -3,7 +3,17 @@
namespace stdplus
{
+#ifdef NDEBUG
+#define zstring_debug_instance(char_t)
+#else
+#define zstring_debug_instance(char_t) \
+ template std::size_t detail::zstring_validate<char_t>( \
+ const char_t* str, std::size_t min, std::size_t max)
+#endif
#define zstring_instance(char_t) \
+ template std::ptrdiff_t detail::zstring_find_term<char_t>( \
+ const char_t* str, std::size_t min, std::size_t max) noexcept; \
+ zstring_debug_instance(char_t); \
template class basic_zstring<char_t>; \
template class basic_zstring<const char_t>
zstring_instance(char);
@@ -12,5 +22,6 @@
zstring_instance(char32_t);
zstring_instance(wchar_t);
#undef zstring_instance
+#undef zstring_debug_instance
} // namespace stdplus