瀏覽代碼

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

master
bergmann 6 年之前
父節點
當前提交
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;
}

}

Loading…
取消
儲存