All the examples are ill-formed.
#include <experimental/ranges/range>
namespace view {
using namespace std::experimental::ranges::view;
using namespace std::experimental::ranges::view::ext;
} // namespace view
int main()
{
auto s1 = view::generate([]{ return 0; }) | view::take(0);
auto s2 = view::generate([]{ return 0; }) | view::take_while([](auto&&){ return true; });
auto s3 = view::generate([]{ return 0; }) | view::filter([](auto&&){ return true; });
}
All the examples are ill-formed.