Просмотр исходного кода

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

master
bergmann 6 лет назад
Родитель
Сommit
c1ae1162b7
2 измененных файлов: 19 добавлений и 0 удалений
  1. +9
    -0
      include/cppcore/conversion/string.h
  2. +10
    -0
      include/cppcore/conversion/string.inl

+ 9
- 0
include/cppcore/conversion/string.h Просмотреть файл

@@ -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 Просмотреть файл

@@ -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;
}

}

Загрузка…
Отмена
Сохранить