#pragma once #include "stream.h" namespace asyncpp { /* stream */ template< typename T_value, typename T_impl> template< typename X_object> stream ::stream(X_object&& p_ref) : ref(std::forward(p_ref)) { } template< typename T_value, typename T_impl> typename stream::result_type stream ::poll() { return trait_type::poll(*this); } /* misc */ template constexpr decltype(auto) as_stream(X_value&& value) { using value_type = X_value; using stream_type = stream; return stream_type(std::forward(value)); } }