1 #ifndef VCSN_ALGOS_IS_PROPER_HH
2 # define VCSN_ALGOS_IS_PROPER_HH
4 # include <type_traits>
16 template <
typename Aut>
17 typename std::enable_if<labelset_t_of<Aut>::has_one(),
21 for (
auto t: aut->transitions())
22 if (aut->labelset()->is_one(aut->label_of(t)))
27 template <
typename Aut>
29 typename std::enable_if<!labelset_t_of<Aut>::has_one(),
44 template <
typename Aut>
45 bool is_proper(
const Aut& aut) ATTRIBUTE_CONST;
47 template <
typename Aut>
63 template <
typename Aut>
66 const auto& a = aut->as<Aut>();
78 #endif // !VCSN_ALGOS_IS_PROPER_HH
std::enable_if< labelset_t_of< Aut >::has_one(), bool >::type is_proper_(const Aut &aut)
REGISTER_DECLARE(accessible,(const automaton &) -> automaton)
std::shared_ptr< detail::automaton_base > automaton
bool is_proper(const automaton &aut)
bool is_proper(const Aut &aut)
Test whether an automaton is proper.