vr: avoid missing std::char_traits<const T>
In newer versions of libc++, std::char_traits<T> is only defined for
character types (and not const/volatile-qualified character types). See
https://discourse.llvm.org/t/deprecating-std-string-t-for-non-character-t/66779.
Remove the cv qualifiers from CharT first. Keep qualifiers on
value_type and typedefs derived from it.
This library appears to be unused (see b/253514421#comment11), but it
still builds with a "checkbuild", so it blocks the libc++ update
(b/175635923).
Bug: 175635923
Test: make checkbuild
Test: m MODULES-IN-frameworks-native-libs-vr
Test: /data/nativetest64/pdx_tests/pdx_tests
Change-Id: I2bfa04ccd073f8701597be8618bb8b48eb695afe
diff --git a/libs/vr/libpdx/private/pdx/rpc/string_wrapper.h b/libs/vr/libpdx/private/pdx/rpc/string_wrapper.h
index 2d0a4ea..371ed89 100644
--- a/libs/vr/libpdx/private/pdx/rpc/string_wrapper.h
+++ b/libs/vr/libpdx/private/pdx/rpc/string_wrapper.h
@@ -17,12 +17,12 @@
// C strings more efficient by avoiding unnecessary copies when remote method
// signatures specify std::basic_string arguments or return values.
template <typename CharT = std::string::value_type,
- typename Traits = std::char_traits<CharT>>
+ typename Traits = std::char_traits<std::remove_cv_t<CharT>>>
class StringWrapper {
public:
// Define types in the style of STL strings to support STL operators.
typedef Traits traits_type;
- typedef typename Traits::char_type value_type;
+ typedef CharT value_type;
typedef std::size_t size_type;
typedef value_type& reference;
typedef const value_type& const_reference;