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