3 #include <boost/range/adaptor/filtered.hpp>
4 #include <boost/range/distance.hpp>
10 template <
typename Range,
typename Filter>
22 using iterator =
typename filtered_t::iterator;
47 template <
typename Range,
typename Filter>
50 decltype(f(*std::begin(
r)),
void())* =
nullptr)
58 template <
typename Range,
typename Filter>
59 struct range_difference<
vcsn::detail::safe_filtered<Range, Filter>>
safe_filtered(Range r, Filter f)
const_iterator end() const
typename filtered_t::const_iterator const_iterator
size_t size() const
Number of elements in the filtered range.
typename vcsn::detail::safe_filtered< Range, Filter >::difference_type type
weightset_mixin< detail::r_impl > r
boost::filtered_range< Filter, Range > filtered_t
std::ptrdiff_t difference_type
Provide a variadic mul on top of a binary mul(), and one().
filter_automaton< Aut, Trans > filter(const Aut &aut, boost::optional< dynamic_bitset > ss={}, boost::optional< dynamic_bitset > ts={})
Get an automaton who is a part state set ss of aut.
typename Range::value_type value_type
const_iterator begin() const
bool empty() const
Whether filters to nothing.
typename filtered_t::iterator iterator