ranges-compatible generator type built on C++20 coroutines
Single-header, ranges-compatible generator
type built with C++20 coroutines.
A generator
allows implementing sequence producers which are terse and avoid creating the whole sequence in memory.
For example, if you were to need a sequence of the first n
integers, you could generate a std::vector
of them. This implementation would be simple, but would have to produce the whole sequence in memory. To avoid this, you could instead write an iterator or range which generates them lazily. However, writing iterators and ranges comes with a lot of boilerplate. Generators have the benefits of both:
Requires (1)
Tests
Reviews
Builds
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_fedora_39-gcc_13-bindist |
timestamp |
2024-10-29 13:45:34 UTC (04:33:57 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-static_O3 |
timestamp |
2024-10-29 13:40:38 UTC (04:38:54 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.8-static_O2 |
timestamp |
2024-10-29 13:39:35 UTC (04:39:56 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.8-O2 |
timestamp |
2024-10-29 13:37:56 UTC (04:41:36 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.10-static_O2 |
timestamp |
2024-10-29 13:37:43 UTC (04:41:49 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-O3 |
timestamp |
2024-10-29 13:37:18 UTC (04:42:13 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.10-O2 |
timestamp |
2024-10-29 13:37:13 UTC (04:42:18 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.8 |
timestamp |
2024-10-29 13:37:04 UTC (04:42:27 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.10 |
timestamp |
2024-10-29 13:36:29 UTC (04:43:02 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-ndebug_O3 |
timestamp |
2024-10-29 13:35:31 UTC (04:44:01 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_12-bindist |
timestamp |
2024-10-29 13:35:01 UTC (04:44:31 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_ubuntu_24.04-gcc_13-bindist |
timestamp |
2024-10-29 13:34:30 UTC (04:45:01 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_14 |
timestamp |
2024-10-29 13:34:07 UTC (04:45:24 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_13.1 |
timestamp |
2024-10-29 13:33:50 UTC (04:45:42 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_fedora_40-gcc_14-bindist |
timestamp |
2024-10-29 04:15:06 UTC (14:04:25 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-static_O3 |
timestamp |
2024-10-29 01:53:37 UTC (16:25:54 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-ndebug_O3 |
timestamp |
2024-10-29 01:51:56 UTC (16:27:36 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-O3 |
timestamp |
2024-10-29 01:47:21 UTC (16:32:10 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_14 |
timestamp |
2024-10-29 01:45:15 UTC (16:34:17 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_13 |
timestamp |
2024-10-27 12:40:47 UTC (02 05:38:44 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-gcc_14_homebrew-static_O3 |
timestamp |
2024-10-26 22:38:33 UTC (02 19:40:59 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-gcc_14_homebrew-O3 |
timestamp |
2024-10-26 22:36:51 UTC (02 19:42:41 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-gcc_14_homebrew |
timestamp |
2024-10-26 22:35:10 UTC (02 19:44:21 days ago) |
result |
success | log | rebuild |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_17 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_17_libc++ |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18-O3 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18-static_O3 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++ |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++-O3 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++-static_O3 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_17 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_17_libc++ |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18-O3 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18-static_O3 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++ |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++-O3 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++-static_O3 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-apple-darwin22.5.0 |
tgt config |
macos_13-clang_15.0 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-clang_15.0 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-clang_15.0-O3 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-clang_15.0-static_O3 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-freebsd13.3 |
tgt config |
freebsd_13-clang_17 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-freebsd14.1 |
tgt config |
freebsd_14-clang_18 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-freebsd14.1 |
tgt config |
freebsd_14-clang_18-O3 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-freebsd14.1 |
tgt config |
freebsd_14-clang_18-static_O3 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-w64-mingw32 |
tgt config |
windows_10-gcc_13.2_mingw_w64 |
result |
excluded (MinGW/gcc not officially supported yet) |
target |
x86_64-w64-mingw32 |
tgt config |
windows_10-gcc_13.2_mingw_w64-O2 |
result |
excluded (MinGW/gcc not officially supported yet) |
target |
x86_64-w64-mingw32 |
tgt config |
windows_10-gcc_13.2_mingw_w64-static_O2 |
result |
excluded (MinGW/gcc not officially supported yet) |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-clang_17_msvc_msvc_17.10 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-clang_18_llvm_msvc_17.10 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-clang_18_llvm_msvc_17.10-O2 |
result |
excluded (most clang versions dont handle coroutines yet) |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-clang_18_llvm_msvc_17.10-static_O2 |
result |
excluded (most clang versions dont handle coroutines yet) |