add adaptor piped, taken, dropped, window, offset, adapted_xxx

This commit is contained in:
bolero-MURAKAMI 2012-11-24 13:04:02 +09:00
parent 5c9a8153de
commit cc4ade67fd
47 changed files with 1349 additions and 76 deletions

View file

@ -22,7 +22,10 @@ namespace sprout {
)
-> sprout::generator_iterator<typename std::remove_reference<decltype(distribution(engine))>::type>
{
return sprout::generator_iterator<typename std::remove_reference<decltype(distribution(engine))>::type>(distribution(engine), count);
return count >= 0
? sprout::generator_iterator<typename std::remove_reference<decltype(distribution(engine))>::type>(distribution(engine), count)
: sprout::generator_iterator<typename std::remove_reference<decltype(distribution(engine))>::type>(distribution(engine))
;
}
template<typename Engine>
inline SPROUT_CONSTEXPR auto
@ -32,7 +35,10 @@ namespace sprout {
)
-> sprout::generator_iterator<typename std::remove_reference<decltype(engine())>::type>
{
return sprout::generator_iterator<typename std::remove_reference<decltype(engine())>::type>(engine(), count);
return count >= 0
? sprout::generator_iterator<typename std::remove_reference<decltype(engine())>::type>(engine(), count)
: sprout::generator_iterator<typename std::remove_reference<decltype(engine())>::type>(engine())
;
}
//