Enable signature erasure

This commit is contained in:
Denis Blank 2015-08-11 14:31:25 +02:00
parent c4a73357c8
commit b8a12bb3bf
2 changed files with 17 additions and 5 deletions

View File

@ -496,6 +496,7 @@ void some_examples()
//// Here we go //// Here we go
//entry(); //entry();
/*
detail::unary_chainer_t< detail::unary_chainer_t<
std::function<Continuable<bool>()> std::function<Continuable<bool>()>
>::callback_arguments_t args213987; >::callback_arguments_t args213987;
@ -547,6 +548,7 @@ void some_examples()
std::function<Continuable<std::string>()> std::function<Continuable<std::string>()>
> >
>::result_maker::partial_results_t myres123345; >::result_maker::partial_results_t myres123345;
*/
/* /*
auto firstType = detail::multiple_when_all_chainer_t< auto firstType = detail::multiple_when_all_chainer_t<
@ -589,7 +591,9 @@ void some_examples()
{ {
callback(true, false, 0.3f, std::unique_ptr<std::string>(new std::string("oh, all work is done!"))); callback(true, false, 0.3f, std::unique_ptr<std::string>(new std::string("oh, all work is done!")));
}), }),
TrivialPromise()) [] {
return TrivialPromise();
})
.then([](SpellCastResult r0, SpellCastResult r1, bool r2, bool r3, double r4, std::unique_ptr<std::string> message) .then([](SpellCastResult r0, SpellCastResult r1, bool r2, bool r3, double r4, std::unique_ptr<std::string> message)
{ {
return TrivialPromise("Lets see... ").then(Log(*message)); return TrivialPromise("Lets see... ").then(Log(*message));
@ -706,4 +710,14 @@ void test_cross_forward()
void test_incubator() void test_incubator()
{ {
test_cross_forward(); test_cross_forward();
std::function<Continuable<>(int, float)> fn1 = detail::partial_corrector<int, float>::correct([](int, float)
{
return make_continuable();
});
std::function<Continuable<>(int, float)> fn2 = detail::partial_corrector<int, float>::correct([]
{
return make_continuable();
});
} }

View File

@ -451,11 +451,9 @@ namespace detail
template<typename _CTy> template<typename _CTy>
static inline auto partialize_correct_trait(_CTy&& functional) static inline auto partialize_correct_trait(_CTy&& functional)
// -> decltype(partial_corrector<_ATy>::correct(std::declval<_CTy>())) -> decltype(partial_corrector<_ATy...>::correct(std::declval<_CTy>()))
-> _CTy
{ {
// return partial_corrector<_ATy>::correct(std::forward<_CTy>(functional)); return partial_corrector<_ATy...>::correct(std::forward<_CTy>(functional));
return std::forward<_CTy>(functional);
} }
/// Wrap Continuables into the continuable returning functional type. /// Wrap Continuables into the continuable returning functional type.