Compile-time sizes for range adaptors
In my previous blog post, we’ve discussed the static constexpr std::integral_constant
idiom to specify the size of a range at compile-time.
Unlike the standard, our [think-cell’s] ranges library at think-cell already supports compile-time sizes natively, so I was eager to try the idiom there and see how it works out in practice.
namespace tc
{
template <typename Rng>
constexpr auto size(Rng&& rng); // runtime-size of a range, like std::ranges::size
template <typename Rng> requires tc::has_constexpr_size<Rng>
constexpr auto constexpr_size = …; // compile-time size of a range given its type
}
…
Read this blog post at think-cell's developer blog. Subscribe there to stay up-to-date!