Skip to content

Commit f3cd3af

Browse files
committed
Specialize output for all pointer types; fixes EQ w/ wchar_t* et al
1 parent 378dc90 commit f3cd3af

1 file changed

Lines changed: 7 additions & 10 deletions

File tree

include/boost/core/lightweight_test.hpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -156,18 +156,15 @@ inline void no_throw_failed_impl(const char* expr, const char* what, const char*
156156
# pragma GCC diagnostic ignored "-Wsign-conversion"
157157
#endif
158158

159-
// specialize test output for char pointers to avoid printing as cstring
160-
template <class T> inline const T& test_output_impl(const T& v) { return v; }
161-
inline const void* test_output_impl(const char* v) { return v; }
162-
inline const void* test_output_impl(const unsigned char* v) { return v; }
163-
inline const void* test_output_impl(const signed char* v) { return v; }
164-
inline const void* test_output_impl(char* v) { return v; }
165-
inline const void* test_output_impl(unsigned char* v) { return v; }
166-
inline const void* test_output_impl(signed char* v) { return v; }
167-
template<class T> inline const void* test_output_impl(T volatile* v) { return const_cast<T*>(v); }
159+
// specialize test output for pointers to avoid printing as cstring
160+
161+
template<class T> inline T const& test_output_impl( T const& v ) { return v; }
162+
163+
template<class T> inline void const* test_output_impl( T* const& v ) { return v; }
164+
template<class T> inline void const* test_output_impl( T volatile* const& v ) { return const_cast<T*>(v); }
168165

169166
#if !defined( BOOST_NO_CXX11_NULLPTR )
170-
inline const void* test_output_impl(std::nullptr_t) { return nullptr; }
167+
inline const void* test_output_impl( std::nullptr_t ) { return nullptr; }
171168
#endif
172169

173170
// print chars as numeric

0 commit comments

Comments
 (0)