py-vtest/libvmake/examples/custom_sequence.cpp
szdytom 41090efaf5 [libvmake] add meta type vmake::is_sequence_t to check if a type is a valid sequence
fixed a bug with vmake::range(start, end, step)
added an example about how to define costum sequences
2023-07-19 21:49:49 +08:00

27 lines
496 B
C++

#include "../vmake.hpp"
using namespace std;
// equivlant to vmake::range(2, 11, 2)
struct my_sequence {
using result = int;
int p;
my_sequence() : p(2) {}
bool is_terminated() const noexcept {
return p > 10;
}
int operator()() {
p += 2;
return p - 2;
}
};
int main() {
static_assert(vmake::is_sequence_t<my_sequence>::value, "my_sequence is not a valid sequence!");
vmake::outputln(cout, " ", my_sequence{});
vmake::outputln(cout, " ", vmake::range(2, 11, 2));
return 0;
}