Parcourir la source

* Added specialization to write object to stream that has the method std::string to_string(void)

master
bergmann il y a 6 ans
Parent
révision
c1ae1162b7
2 fichiers modifiés avec 19 ajouts et 0 suppressions
  1. +9
    -0
      include/cppcore/conversion/string.h
  2. +10
    -0
      include/cppcore/conversion/string.inl

+ 9
- 0
include/cppcore/conversion/string.h Voir le fichier

@@ -218,6 +218,15 @@ namespace std
std::forward<X>(x).to_string(std::declval<basic_ostream<T_char, T_traits>&>()),
std::declval<basic_ostream<T_char, T_traits>&>());

/**
* @brief Operator overload to write value to stream that supports the to_string method, with stream parameter.
*/
template<typename T_char, typename T_traits, typename X>
inline auto operator<<(basic_ostream<T_char, T_traits>& os, X&& x)
-> decltype(
std::forward<X>(x).to_string(),
std::declval<basic_ostream<T_char, T_traits>&>());

}

#include "string.inl"

+ 10
- 0
include/cppcore/conversion/string.inl Voir le fichier

@@ -428,4 +428,14 @@ namespace std
return os;
}

template<typename T_char, typename T_traits, typename X>
inline auto operator<<(basic_ostream<T_char, T_traits>& os, X&& x)
-> decltype(
std::forward<X>(x).to_string(),
std::declval<basic_ostream<T_char, T_traits>&>())
{
os << std::forward<X>(x).to_string();
return os;
}

}

Chargement…
Annuler
Enregistrer