Генерация случайных значений для константных distribution и engine
Почему данный код компилируется, хотя оператор () является неконстантным как у distribution, так и у engine?
#include <algorithm>
#include <functional>
#include <iostream>
#include <random>
#include <vector>
int main() {
const auto engine = std::default_random_engine(std::random_device{}());
const auto distribution = std::uniform_int_distribution<int>(1, 100);
const auto generator = std::bind_front(distribution, engine);
auto random_values = std::vector<int>(42);
std::ranges::generate(random_values, generator);
for (const auto x : random_values) {
std::cout << x << '\n';
}
}