1 #ifndef SIPLASPLAS_TYPEERASURE_IOSTREAM_HPP 2 #define SIPLASPLAS_TYPEERASURE_IOSTREAM_HPP 6 #include <siplasplas/utility/meta.hpp> 44 template<
typename T,
typename =
void>
48 class OStreamable<T, cpp::meta::void_t<decltype(std::declval<std::ostream&>() << std::declval<T>())>> :
49 public Concept<true, noexcept(std::declval<std::ostream&>() << std::declval<T>())>
74 template<typename T, typename = void>
75 class IStreamable : public Concept<false> {};
78 class IStreamable<T, cpp::meta::void_t<decltype(std::declval<std::istream&>() >> *static_cast<T*>(nullptr))>> :
79 public Concept<true, noexcept(std::declval<std::istream&>() >> *static_cast<T*>(nullptr))>
86 #endif // SIPLASPLAS_TYPEERASURE_IOSTREAM_HPP Definition: canary_allocator.hpp:7
Checks whether a vaue of type T can be written to a standard stream.
Definition: iostream.hpp:45
Represents a concept.
Definition: concept.hpp:28