95 #ifndef GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ 96 #define GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ 106 #if GTEST_HAS_STD_TUPLE_ 114 namespace internal2 {
135 template <
typename T, TypeKind kTypeKind>
150 template <
typename T>
156 short_str.length() <= kProtobufOneLinerMaxLength ?
157 short_str : (
"\n" + value.DebugString());
158 *os << (
"<" + pretty_str +
">");
162 template <
typename T>
202 template <
typename Char,
typename CharTraits,
typename T>
204 ::std::basic_ostream<Char, CharTraits>& os,
const T& x) {
221 template <
typename T>
264 template <
typename T>
267 template <
typename T>
272 template <
typename C>
275 const C& container, ::std::ostream* os) {
276 const size_t kMaxCount = 32;
279 for (
typename C::const_iterator it = container.begin();
280 it != container.end(); ++it, ++count) {
283 if (count == kMaxCount) {
306 template <
typename T>
309 T*
p, ::std::ostream* os) {
330 *os << reinterpret_cast<const void*>(
338 template <
typename T>
341 const T&
value, ::std::ostream* os) {
356 template <
typename T>
390 inline void PrintTo(
char c, ::std::ostream* os) {
394 PrintTo(static_cast<unsigned char>(c), os);
398 inline void PrintTo(
bool x, ::std::ostream* os) {
399 *os << (x ?
"true" :
"false");
413 inline void PrintTo(
char* s, ::std::ostream* os) {
414 PrintTo(ImplicitCast_<const char*>(s), os);
419 inline void PrintTo(
const signed char* s, ::std::ostream* os) {
420 PrintTo(ImplicitCast_<const void*>(s), os);
422 inline void PrintTo(
signed char* s, ::std::ostream* os) {
423 PrintTo(ImplicitCast_<const void*>(s), os);
425 inline void PrintTo(
const unsigned char* s, ::std::ostream* os) {
426 PrintTo(ImplicitCast_<const void*>(s), os);
428 inline void PrintTo(
unsigned char* s, ::std::ostream* os) {
429 PrintTo(ImplicitCast_<const void*>(s), os);
437 #if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED) 440 inline void PrintTo(
wchar_t* s, ::std::ostream* os) {
441 PrintTo(ImplicitCast_<const wchar_t*>(s), os);
450 template <
typename T>
453 for (
size_t i = 1;
i != count;
i++) {
460 #if GTEST_HAS_GLOBAL_STRING 465 #endif // GTEST_HAS_GLOBAL_STRING 473 #if GTEST_HAS_GLOBAL_WSTRING 476 PrintWideStringTo(s, os);
478 #endif // GTEST_HAS_GLOBAL_WSTRING 480 #if GTEST_HAS_STD_WSTRING 483 PrintWideStringTo(s, os);
485 #endif // GTEST_HAS_STD_WSTRING 487 #if GTEST_HAS_TR1_TUPLE || GTEST_HAS_STD_TUPLE_ 490 template <
typename T>
491 void PrintTupleTo(
const T&
t, ::std::ostream* os);
492 #endif // GTEST_HAS_TR1_TUPLE || GTEST_HAS_STD_TUPLE_ 494 #if GTEST_HAS_TR1_TUPLE 503 inline void PrintTo(const ::std::tr1::tuple<>& t, ::std::ostream* os) {
507 template <
typename T1>
508 void PrintTo(const ::std::tr1::tuple<T1>& t, ::std::ostream* os) {
512 template <
typename T1,
typename T2>
513 void PrintTo(const ::std::tr1::tuple<T1, T2>& t, ::std::ostream* os) {
517 template <
typename T1,
typename T2,
typename T3>
518 void PrintTo(const ::std::tr1::tuple<T1, T2, T3>& t, ::std::ostream* os) {
522 template <
typename T1,
typename T2,
typename T3,
typename T4>
523 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4>& t, ::std::ostream* os) {
527 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
528 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5>& t,
529 ::std::ostream* os) {
533 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
535 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6>& t,
536 ::std::ostream* os) {
540 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
541 typename T6,
typename T7>
542 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7>& t,
543 ::std::ostream* os) {
547 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
548 typename T6,
typename T7,
typename T8>
549 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8>& t,
550 ::std::ostream* os) {
554 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
555 typename T6,
typename T7,
typename T8,
typename T9>
556 void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>& t,
557 ::std::ostream* os) {
561 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
562 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
564 const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>& t,
565 ::std::ostream* os) {
568 #endif // GTEST_HAS_TR1_TUPLE 570 #if GTEST_HAS_STD_TUPLE_ 571 template <
typename... Types>
572 void PrintTo(const ::std::tuple<Types...>& t, ::std::ostream* os) {
575 #endif // GTEST_HAS_STD_TUPLE_ 578 template <
typename T1,
typename T2>
591 template <
typename T>
618 template <
typename T>
624 const size_t kThreshold = 18;
625 const size_t kChunkSize = 8;
630 if (len <= kThreshold) {
642 const char* begin,
size_t len, ::std::ostream* os);
646 const wchar_t* begin,
size_t len, ::std::ostream* os);
649 template <
typename T,
size_t N>
654 static void Print(
const T (&
a)[N], ::std::ostream* os) {
660 template <
typename T>
670 *os <<
"@" <<
reinterpret_cast<const void*
>(&
value) <<
" ";
683 template <
typename T>
690 template <
typename T>
697 template <
typename T,
size_t N>
707 static void Print(
const char*
str, ::std::ostream* os) {
723 #if GTEST_HAS_STD_WSTRING 727 static void Print(
const wchar_t*
str, ::std::ostream* os) {
740 static void Print(
wchar_t*
str, ::std::ostream* os) {
745 template <
typename T>
754 template <
typename T>
771 template <
typename TupleT>
774 #if GTEST_HAS_TR1_TUPLE 775 template <
typename TupleT>
777 typedef TupleT Tuple;
785 const typename ::std::tr1::tuple_element<I, Tuple>::type>::type
get(
786 const Tuple& tuple) {
787 return ::std::tr1::get<I>(tuple);
790 template <
typename TupleT>
792 #endif // GTEST_HAS_TR1_TUPLE 794 #if GTEST_HAS_STD_TUPLE_ 795 template <
typename... Types>
797 typedef ::std::tuple<Types...> Tuple;
801 struct tuple_element : ::std::tuple_element<I, Tuple> {};
804 static const typename ::std::tuple_element<I, Tuple>::type&
get(
805 const Tuple& tuple) {
806 return ::std::get<I>(tuple);
809 template <
typename... Types>
810 const size_t TuplePolicy< ::std::tuple<Types...> >::tuple_size;
811 #endif // GTEST_HAS_STD_TUPLE_ 813 #if GTEST_HAS_TR1_TUPLE || GTEST_HAS_STD_TUPLE_ 823 struct TuplePrefixPrinter {
825 template <
typename Tuple>
826 static void PrintPrefixTo(
const Tuple& t, ::std::ostream* os) {
827 TuplePrefixPrinter<N - 1>::PrintPrefixTo(t, os);
840 template <
typename Tuple>
841 static void TersePrintPrefixToStrings(
const Tuple& t, Strings* strings) {
842 TuplePrefixPrinter<N - 1>::TersePrintPrefixToStrings(t, strings);
843 ::std::stringstream ss;
845 strings->push_back(ss.str());
851 struct TuplePrefixPrinter<0> {
852 template <
typename Tuple>
853 static void PrintPrefixTo(
const Tuple&, ::std::ostream*) {}
855 template <
typename Tuple>
856 static void TersePrintPrefixToStrings(
const Tuple&, Strings*) {}
861 template <
typename Tuple>
862 void PrintTupleTo(
const Tuple& t, ::std::ostream* os) {
864 TuplePrefixPrinter<TuplePolicy<Tuple>::tuple_size>::PrintPrefixTo(t, os);
871 template <
typename Tuple>
872 Strings UniversalTersePrintTupleFieldsToStrings(
const Tuple&
value) {
874 TuplePrefixPrinter<TuplePolicy<Tuple>::tuple_size>::
875 TersePrintPrefixToStrings(value, &result);
878 #endif // GTEST_HAS_TR1_TUPLE || GTEST_HAS_STD_TUPLE_ 882 template <
typename T>
884 ::std::stringstream ss;
891 #endif // GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ static void Print(const T &value,::std::ostream *os)
GTEST_API_ bool IsTrue(bool condition)
void PrintRawArrayTo(const T a[], size_t count,::std::ostream *os)
static void Print(wchar_t *str,::std::ostream *os)
#define GTEST_INTENTIONAL_CONST_COND_PUSH_()
#define GTEST_DISABLE_MSC_WARNINGS_POP_()
static void Print(const T &value,::std::ostream *os)
GTEST_API_ void PrintStringTo(const ::std::string &s,::std::ostream *os)
::std::string PrintToString(const T &value)
static void Print(const T(&value)[N],::std::ostream *os)
void UniversalTersePrint(const T &value,::std::ostream *os)
void DefaultPrintNonContainerTo(const T &value,::std::ostream *os)
static void Print(const T(&a)[N],::std::ostream *os)
::std::basic_ostream< Char, CharTraits > & operator<<(::std::basic_ostream< Char, CharTraits > &os, const T &x)
if(strcmp(arg,"1305")!=0)
static void Print(const char *str,::std::ostream *os)
geometry_msgs::TransformStamped t
UNITTEST_START int result
void DefaultPrintTo(IsNotContainer, false_type, const T &value,::std::ostream *os)
const size_t kProtobufOneLinerMaxLength
#define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings)
string Print(const T &value)
GTEST_API_ void UniversalPrintArray(const wchar_t *begin, size_t len,::std::ostream *os)
void UniversalPrint(const T &value,::std::ostream *os)
GTEST_API_ void PrintBytesInObjectTo(const unsigned char *obj_bytes, size_t count,::std::ostream *os)
::std::vector< string > Strings
static void Print(char *str,::std::ostream *os)
void PrintTo(const ::std::pair< T1, T2 > &value,::std::ostream *os)
TypeWithSize< 8 >::UInt UInt64
UNITTEST_START int * value
#define GTEST_INTENTIONAL_CONST_COND_POP_()