cleaner pipe operator definition for ranges

master
Daniel Kolesa 2017-02-13 20:43:23 +01:00
parent fd6a47c223
commit 6ba3b93018
2 changed files with 5 additions and 3 deletions

View File

@ -27,7 +27,7 @@ enum FormatFlags {
FMT_FLAG_HASH = 1 << 4 FMT_FLAG_HASH = 1 << 4
}; };
struct format_error: public std::runtime_error { struct format_error: std::runtime_error {
using std::runtime_error::runtime_error; using std::runtime_error::runtime_error;
}; };

View File

@ -698,8 +698,10 @@ struct InputRange {
} }
}; };
template<typename R, typename F, typename = std::enable_if_t<IsInputRange<R>>> template<typename R, typename F>
inline auto operator|(R &&range, F &&func) { inline auto operator|(R &&range, F &&func) ->
std::enable_if_t<IsInputRange<R>, decltype(func(std::forward<R>(range)))>
{
return func(std::forward<R>(range)); return func(std::forward<R>(range));
} }