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>>
const_iterator end() const
const_iterator begin() const
weightset_mixin< detail::r_impl > r
Provide a variadic mul on top of a binary mul(), and one().
typename Range::value_type value_type
bool empty() const
Whether filters to nothing.
size_t size() const
Number of elements in the filtered range.
boost::filtered_range< Filter, Range > filtered_t
safe_filtered(Range r, Filter f)
typename vcsn::detail::safe_filtered< Range, Filter >::difference_type type
std::ptrdiff_t difference_type
typename filtered_t::const_iterator const_iterator
typename filtered_t::iterator iterator
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.