Commit 043e0dc4 authored by Dominik Charousset's avatar Dominik Charousset

maintenance

parent 7d70f1db
......@@ -462,10 +462,10 @@ template<typename Data>
struct invoke_helper3 {
const Data& data;
invoke_helper3(const Data& mdata) : data(mdata) { }
template<size_t Pos, typename T, typename... Args>
inline bool operator()(util::type_pair<std::integral_constant<size_t, Pos>, T>,
template<size_t P, typename T, typename... Args>
inline bool operator()(util::type_pair<std::integral_constant<size_t,P>,T>,
Args&&... args) const {
const auto& target = get<Pos>(data);
const auto& target = get<P>(data);
return target.first(target.second, std::forward<Args>(args)...);
//return (get<Pos>(data))(args...);
}
......@@ -474,7 +474,7 @@ struct invoke_helper3 {
template<class Data, class Token, class Pattern>
struct invoke_helper2 {
typedef Pattern pattern_type;
typedef typename util::tl_filter_not_type<pattern_type, anything>::type arg_types;
typedef typename util::tl_filter_not_type<Pattern,anything>::type arg_types;
const Data& data;
invoke_helper2(const Data& mdata) : data(mdata) { }
template<typename... Args>
......@@ -488,7 +488,8 @@ struct invoke_helper2 {
//static_assert(false, "foo");
Token token;
invoke_helper3<Data> fun{data};
return util::static_foreach<0, Token::size>::eval_or(token, fun, std::forward<Args>(args)...);
return util::static_foreach<0, Token::size>
::eval_or(token, fun, std::forward<Args>(args)...);
}
};
......@@ -497,7 +498,8 @@ template<typename Data>
struct invoke_helper {
const Data& data;
std::uint64_t bitfield;
invoke_helper(const Data& mdata, std::uint64_t bits) : data(mdata), bitfield(bits) { }
invoke_helper(const Data& mdata, std::uint64_t bits)
: data(mdata), bitfield(bits) { }
// token: type_list<type_pair<integral_constant<size_t, X>,
// std::pair<projection, tpartial_function>>,
// ...>
......@@ -849,30 +851,6 @@ inline match_expr<Lhs..., Rhs...> operator,(const match_expr<Lhs...>& lhs,
return lhs.or_else(rhs);
}
/*
template<typename Arg0, typename... Args>
typename match_expr_from_type_list<
typename util::tl_concat<
typename Arg0::cases_list,
typename Args::cases_list...
>::type
>::type
mexpr_concat(const Arg0& arg0, const Args&... args) {
typename detail::tdata_from_type_list<
typename util::tl_map<
typename util::tl_concat<
typename Arg0::cases_list,
typename Args::cases_list...
>::type,
gref_wrapped
>::type
>::type
all_cases;
detail::collect_tdata(all_cases, arg0.cases(), args.cases()...);
return {all_cases};
}
*/
template<bool HasTimeout>
struct match_expr_concat_impl {
template<typename Arg0, typename... Args>
......@@ -904,14 +882,14 @@ struct match_expr_concat_impl {
template<>
struct match_expr_concat_impl<true> {
template<class TData, typename Cases, typename F>
static behavior_impl* __(const TData& data, Cases, const timeout_definition<F>& arg0) {
typedef typename match_expr_from_type_list<Cases>::type combined_type;
template<class TData, class Token, typename F>
static behavior_impl* __(const TData& data, Token, const timeout_definition<F>& arg0) {
typedef typename match_expr_from_type_list<Token>::type combined_type;
typedef default_behavior_impl<combined_type, F> impl_type;
return new impl_type(data, arg0);
}
template<class TData, typename Token, typename... Cases, typename... Args>
template<class TData, class Token, typename... Cases, typename... Args>
static behavior_impl* __(const TData& data, Token, const match_expr<Cases...>& arg0, const Args&... args) {
typedef typename util::tl_concat<
Token,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment