15 #ifndef PAAL_SEARCH_TRAITS_HPP
16 #define PAAL_SEARCH_TRAITS_HPP
46 typedef typename std::remove_reference<
47 typename std::result_of<GetMoves(Solution &)>::type>::type MovesRange;
48 typedef typename boost::range_iterator<MovesRange>::type MoveIterator;
51 typedef typename std::iterator_traits<MoveIterator>::value_type value_type;
52 typedef typename std::iterator_traits<MoveIterator>::reference reference;
61 template <
typename SearchComponents,
typename Solution>
63 typename search_components_traits<SearchComponents>::GetMovesT, Solution> {
72 template <
typename Gain,
typename GetMoves,
typename Solution>
74 typedef typename move_type_from_get_moves<GetMoves, Solution>::value_type
87 template <
typename SearchComponents,
typename Solution>
89 typename search_components_traits<SearchComponents>::GainT,
90 typename search_components_traits<SearchComponents>::GetMovesT, Solution>::type;
94 #endif // PAAL_SEARCH_TRAITS_HPP
typename fitness_from_gain_and_get_moves< typename search_components_traits< SearchComponents >::GainT, typename search_components_traits< SearchComponents >::GetMovesT, Solution >::type fitness_t
metafunction returns Fitness type in single_solution case
typename components::type< Args...> search_components
search_components template alias
metafunction returns move type in single_solution case
Traits class for search_components.
metafunction returns Fitness type in single_solution case
bool local_search(Solution &solution, SearchStrategy searchStrategy, ContinueOnSuccess succ, ContinueOnFail fail, components...comps)
detail
typename std::decay< typename std::result_of< F >::type >::type pure_result_of_t
return pure type of function (decays const and reference)
metafunction returns move type in single_solution case