Created
November 28, 2012 18:31
-
-
Save splinterofchaos/4163078 to your computer and use it in GitHub Desktop.
An error message for one line of code involving template trickery.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| examples.cpp: In function 'int main()': | |
| examples.cpp:234:10: warning: variable 'o' set but not used [-Wunused-but-set-variable] | |
| In file included from /usr/include/c++/4.7/bits/stl_algo.h:68:0, | |
| from /usr/include/c++/4.7/algorithm:63, | |
| from Pure.h:4, | |
| from examples.cpp:2: | |
| /usr/include/c++/4.7/functional: In instantiation of 'static _Res std::_Function_handler<_Res(_ArgTypes ...), _Functor>::_M_invoke(const std::_Any_data&, _ArgTypes ...) [with _Res = std::unique_ptr<std::pair<int, int> >; _Functor = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; _ArgTypes = {int}]': | |
| /usr/include/c++/4.7/functional:2298:6: required from 'std::function<_Res(_ArgTypes ...)>::function(_Functor, typename std::enable_if<(! std::is_integral<_Functor>::value), std::function<_Res(_ArgTypes ...)>::_Useless>::type) [with _Functor = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; _Res = std::unique_ptr<std::pair<int, int> >; _ArgTypes = {int}; typename std::enable_if<(! std::is_integral<_Functor>::value), std::function<_Res(_ArgTypes ...)>::_Useless>::type = std::function<std::unique_ptr<std::pair<int, int> >(int)>::_Useless]' | |
| Functional.h:14:64: required from 'constexpr pure::Forwarder<F>::Forwarder(G&& ...) [with G = {pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int, std::default_delete<int> >(int)>, std::function<std::unique_ptr<int, std::default_delete<int> >(int)> > >, pure::arrow::Duplicate> >}; F = std::function<std::unique_ptr<std::pair<int, int> >(int)>]' | |
| Arrow.h:158:53: required from 'constexpr pure::arrow::KleisliF<M, S, T, F>::KleisliF(G) [with G = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; M = std::unique_ptr; S = int; T = std::pair<int, int>; F = std::function<std::unique_ptr<std::pair<int, int> >(int)>]' | |
| examples.cpp:648:75: required from here | |
| /usr/include/c++/4.7/functional:1912:40: error: no match for call to '(pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >) (int)' | |
| In file included from examples.cpp:4:0: | |
| Arrow.h:156:8: note: candidate is: | |
| In file included from List.h:3:0, | |
| from Pure.h:18, | |
| from examples.cpp:2: | |
| Functional.h:17:20: note: template<class ... X> constexpr decltype (((pure::Forwarder*)this)->pure::Forwarder<F>::f((declval<X>)()...)) pure::Forwarder::operator()(X&& ...) const [with X = {X ...}; F = pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate>] | |
| Functional.h:17:20: note: template argument deduction/substitution failed: | |
| Functional.h: In substitution of 'template<class ... X> constexpr decltype (((pure::Forwarder*)this)->pure::Forwarder<F>::f((declval<X>)()...)) pure::Forwarder::operator()(X&& ...) const [with X = {X ...}; F = pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate>] [with X = {int}]': | |
| /usr/include/c++/4.7/functional:1912:40: required from 'static _Res std::_Function_handler<_Res(_ArgTypes ...), _Functor>::_M_invoke(const std::_Any_data&, _ArgTypes ...) [with _Res = std::unique_ptr<std::pair<int, int> >; _Functor = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; _ArgTypes = {int}]' | |
| /usr/include/c++/4.7/functional:2298:6: required from 'std::function<_Res(_ArgTypes ...)>::function(_Functor, typename std::enable_if<(! std::is_integral<_Functor>::value), std::function<_Res(_ArgTypes ...)>::_Useless>::type) [with _Functor = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; _Res = std::unique_ptr<std::pair<int, int> >; _ArgTypes = {int}; typename std::enable_if<(! std::is_integral<_Functor>::value), std::function<_Res(_ArgTypes ...)>::_Useless>::type = std::function<std::unique_ptr<std::pair<int, int> >(int)>::_Useless]' | |
| Functional.h:14:64: required from 'constexpr pure::Forwarder<F>::Forwarder(G&& ...) [with G = {pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int, std::default_delete<int> >(int)>, std::function<std::unique_ptr<int, std::default_delete<int> >(int)> > >, pure::arrow::Duplicate> >}; F = std::function<std::unique_ptr<std::pair<int, int> >(int)>]' | |
| Arrow.h:158:53: required from 'constexpr pure::arrow::KleisliF<M, S, T, F>::KleisliF(G) [with G = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; M = std::unique_ptr; S = int; T = std::pair<int, int>; F = std::function<std::unique_ptr<std::pair<int, int> >(int)>]' | |
| examples.cpp:648:75: required from here | |
| Functional.h:17:20: error: no match for call to '(pure::Forwarder<pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >::function {aka pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate>}) (int)' | |
| Functional.h:383:37: note: candidate is: | |
| Functional.h:391:5: note: template<class X, class ... Y> constexpr decltype (((pure::Composition*)0)->pure::Composition<F, G>::f(((pure::Composition*)0)->pure::Composition<F, G>::g(declval<X>()), (declval<Y>)()...)) pure::Composition::operator()(X&&, Y&& ...) const [with X = X; Y = {Y ...}; F = pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >; G = pure::arrow::Duplicate] | |
| Functional.h:391:5: note: template argument deduction/substitution failed: | |
| Functional.h: In substitution of 'template<class X, class ... Y> constexpr decltype (((pure::Composition*)0)->pure::Composition<F, G>::f(((pure::Composition*)0)->pure::Composition<F, G>::g(declval<X>()), (declval<Y>)()...)) pure::Composition::operator()(X&&, Y&& ...) const [with X = X; Y = {Y ...}; F = pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >; G = pure::arrow::Duplicate] [with X = int; Y = {}]': | |
| Functional.h:17:20: required by substitution of 'template<class ... X> constexpr decltype (((pure::Forwarder*)this)->pure::Forwarder<F>::f((declval<X>)()...)) pure::Forwarder::operator()(X&& ...) const [with X = {X ...}; F = pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate>] [with X = {int}]' | |
| /usr/include/c++/4.7/functional:1912:40: required from 'static _Res std::_Function_handler<_Res(_ArgTypes ...), _Functor>::_M_invoke(const std::_Any_data&, _ArgTypes ...) [with _Res = std::unique_ptr<std::pair<int, int> >; _Functor = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; _ArgTypes = {int}]' | |
| /usr/include/c++/4.7/functional:2298:6: required from 'std::function<_Res(_ArgTypes ...)>::function(_Functor, typename std::enable_if<(! std::is_integral<_Functor>::value), std::function<_Res(_ArgTypes ...)>::_Useless>::type) [with _Functor = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; _Res = std::unique_ptr<std::pair<int, int> >; _ArgTypes = {int}; typename std::enable_if<(! std::is_integral<_Functor>::value), std::function<_Res(_ArgTypes ...)>::_Useless>::type = std::function<std::unique_ptr<std::pair<int, int> >(int)>::_Useless]' | |
| Functional.h:14:64: required from 'constexpr pure::Forwarder<F>::Forwarder(G&& ...) [with G = {pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int, std::default_delete<int> >(int)>, std::function<std::unique_ptr<int, std::default_delete<int> >(int)> > >, pure::arrow::Duplicate> >}; F = std::function<std::unique_ptr<std::pair<int, int> >(int)>]' | |
| Arrow.h:158:53: required from 'constexpr pure::arrow::KleisliF<M, S, T, F>::KleisliF(G) [with G = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; M = std::unique_ptr; S = int; T = std::pair<int, int>; F = std::function<std::unique_ptr<std::pair<int, int> >(int)>]' | |
| examples.cpp:648:75: required from here | |
| Functional.h:391:5: error: no match for call to '(pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >) (std::pair<int, int>)' | |
| In file included from examples.cpp:4:0: | |
| Arrow.h:156:8: note: candidate is: | |
| In file included from List.h:3:0, | |
| from Pure.h:18, | |
| from examples.cpp:2: | |
| Functional.h:17:20: note: template<class ... X> constexpr decltype (((pure::Forwarder*)this)->pure::Forwarder<F>::f((declval<X>)()...)) pure::Forwarder::operator()(X&& ...) const [with X = {X ...}; F = pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> >] | |
| Functional.h:17:20: note: template argument deduction/substitution failed: | |
| Functional.h: In substitution of 'template<class ... X> constexpr decltype (((pure::Forwarder*)this)->pure::Forwarder<F>::f((declval<X>)()...)) pure::Forwarder::operator()(X&& ...) const [with X = {X ...}; F = pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> >] [with X = {std::pair<int, int>}]': | |
| Functional.h:391:5: required by substitution of 'template<class X, class ... Y> constexpr decltype (((pure::Composition*)0)->pure::Composition<F, G>::f(((pure::Composition*)0)->pure::Composition<F, G>::g(declval<X>()), (declval<Y>)()...)) pure::Composition::operator()(X&&, Y&& ...) const [with X = X; Y = {Y ...}; F = pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >; G = pure::arrow::Duplicate] [with X = int; Y = {}]' | |
| Functional.h:17:20: required by substitution of 'template<class ... X> constexpr decltype (((pure::Forwarder*)this)->pure::Forwarder<F>::f((declval<X>)()...)) pure::Forwarder::operator()(X&& ...) const [with X = {X ...}; F = pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate>] [with X = {int}]' | |
| /usr/include/c++/4.7/functional:1912:40: required from 'static _Res std::_Function_handler<_Res(_ArgTypes ...), _Functor>::_M_invoke(const std::_Any_data&, _ArgTypes ...) [with _Res = std::unique_ptr<std::pair<int, int> >; _Functor = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; _ArgTypes = {int}]' | |
| /usr/include/c++/4.7/functional:2298:6: required from 'std::function<_Res(_ArgTypes ...)>::function(_Functor, typename std::enable_if<(! std::is_integral<_Functor>::value), std::function<_Res(_ArgTypes ...)>::_Useless>::type) [with _Functor = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; _Res = std::unique_ptr<std::pair<int, int> >; _ArgTypes = {int}; typename std::enable_if<(! std::is_integral<_Functor>::value), std::function<_Res(_ArgTypes ...)>::_Useless>::type = std::function<std::unique_ptr<std::pair<int, int> >(int)>::_Useless]' | |
| Functional.h:14:64: required from 'constexpr pure::Forwarder<F>::Forwarder(G&& ...) [with G = {pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int, std::default_delete<int> >(int)>, std::function<std::unique_ptr<int, std::default_delete<int> >(int)> > >, pure::arrow::Duplicate> >}; F = std::function<std::unique_ptr<std::pair<int, int> >(int)>]' | |
| Arrow.h:158:53: required from 'constexpr pure::arrow::KleisliF<M, S, T, F>::KleisliF(G) [with G = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; M = std::unique_ptr; S = int; T = std::pair<int, int>; F = std::function<std::unique_ptr<std::pair<int, int> >(int)>]' | |
| examples.cpp:648:75: required from here | |
| Functional.h:17:20: error: no match for call to '(pure::Forwarder<pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >::function {aka pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> >}) (std::pair<int, int>)' | |
| Functional.h:440:8: note: candidate is: | |
| Functional.h:450:5: note: template<class ... X> constexpr decltype (((pure::BComposition*)0)->pure::BComposition<F, G, H>::f(((pure::BComposition*)0)->pure::BComposition<F, G, H>::g((declval<X>)()...), ((pure::BComposition*)0)->pure::BComposition<F, G, H>::h((declval<X>)()...))) pure::BComposition::operator()(X&& ...) const [with X = {X ...}; F = pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >; G = std::function<std::unique_ptr<int>(int)>; H = std::function<std::unique_ptr<int>(int)>] | |
| Functional.h:450:5: note: template argument deduction/substitution failed: | |
| Functional.h: In substitution of 'template<class ... X> constexpr decltype (((pure::BComposition*)0)->pure::BComposition<F, G, H>::f(((pure::BComposition*)0)->pure::BComposition<F, G, H>::g((declval<X>)()...), ((pure::BComposition*)0)->pure::BComposition<F, G, H>::h((declval<X>)()...))) pure::BComposition::operator()(X&& ...) const [with X = {X ...}; F = pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >; G = std::function<std::unique_ptr<int>(int)>; H = std::function<std::unique_ptr<int>(int)>] [with X = {std::pair<int, int>}]': | |
| Functional.h:17:20: required by substitution of 'template<class ... X> constexpr decltype (((pure::Forwarder*)this)->pure::Forwarder<F>::f((declval<X>)()...)) pure::Forwarder::operator()(X&& ...) const [with X = {X ...}; F = pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> >] [with X = {std::pair<int, int>}]' | |
| Functional.h:391:5: required by substitution of 'template<class X, class ... Y> constexpr decltype (((pure::Composition*)0)->pure::Composition<F, G>::f(((pure::Composition*)0)->pure::Composition<F, G>::g(declval<X>()), (declval<Y>)()...)) pure::Composition::operator()(X&&, Y&& ...) const [with X = X; Y = {Y ...}; F = pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >; G = pure::arrow::Duplicate] [with X = int; Y = {}]' | |
| Functional.h:17:20: required by substitution of 'template<class ... X> constexpr decltype (((pure::Forwarder*)this)->pure::Forwarder<F>::f((declval<X>)()...)) pure::Forwarder::operator()(X&& ...) const [with X = {X ...}; F = pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate>] [with X = {int}]' | |
| /usr/include/c++/4.7/functional:1912:40: required from 'static _Res std::_Function_handler<_Res(_ArgTypes ...), _Functor>::_M_invoke(const std::_Any_data&, _ArgTypes ...) [with _Res = std::unique_ptr<std::pair<int, int> >; _Functor = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; _ArgTypes = {int}]' | |
| /usr/include/c++/4.7/functional:2298:6: required from 'std::function<_Res(_ArgTypes ...)>::function(_Functor, typename std::enable_if<(! std::is_integral<_Functor>::value), std::function<_Res(_ArgTypes ...)>::_Useless>::type) [with _Functor = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; _Res = std::unique_ptr<std::pair<int, int> >; _ArgTypes = {int}; typename std::enable_if<(! std::is_integral<_Functor>::value), std::function<_Res(_ArgTypes ...)>::_Useless>::type = std::function<std::unique_ptr<std::pair<int, int> >(int)>::_Useless]' | |
| Functional.h:14:64: required from 'constexpr pure::Forwarder<F>::Forwarder(G&& ...) [with G = {pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int, std::default_delete<int> >(int)>, std::function<std::unique_ptr<int, std::default_delete<int> >(int)> > >, pure::arrow::Duplicate> >}; F = std::function<std::unique_ptr<std::pair<int, int> >(int)>]' | |
| Arrow.h:158:53: required from 'constexpr pure::arrow::KleisliF<M, S, T, F>::KleisliF(G) [with G = pure::arrow::KleisliF<std::unique_ptr, int, std::pair<int, int>, pure::Composition<pure::arrow::KleisliF<std::unique_ptr, std::pair<int, int>, std::pair<int, int>, pure::BComposition<pure::Part<pure::monad::LiftM, pure::MakeT<std::pair> >, std::function<std::unique_ptr<int>(int)>, std::function<std::unique_ptr<int>(int)> > >, pure::arrow::Duplicate> >; M = std::unique_ptr; S = int; T = std::pair<int, int>; F = std::function<std::unique_ptr<std::pair<int, int> >(int)>]' | |
| examples.cpp:648:75: required from here | |
| Functional.h:450:5: error: no match for call to '(std::function<std::unique_ptr<int>(int)>) (std::pair<int, int>)' | |
| In file included from /usr/include/c++/4.7/bits/stl_algo.h:68:0, | |
| from /usr/include/c++/4.7/algorithm:63, | |
| from Pure.h:4, | |
| from examples.cpp:2: | |
| /usr/include/c++/4.7/functional:2025:11: note: candidate is: | |
| /usr/include/c++/4.7/functional:2306:5: note: _Res std::function<_Res(_ArgTypes ...)>::operator()(_ArgTypes ...) const [with _Res = std::unique_ptr<int>; _ArgTypes = {int}] | |
| /usr/include/c++/4.7/functional:2306:5: note: no known conversion for argument 1 from 'std::pair<int, int>' to 'int' | |
| In file included from List.h:3:0, | |
| from Pure.h:18, | |
| from examples.cpp:2: | |
| Functional.h:450:5: error: no match for call to '(std::function<std::unique_ptr<int>(int)>) (std::pair<int, int>)' | |
| In file included from /usr/include/c++/4.7/bits/stl_algo.h:68:0, | |
| from /usr/include/c++/4.7/algorithm:63, | |
| from Pure.h:4, | |
| from examples.cpp:2: | |
| /usr/include/c++/4.7/functional:2025:11: note: candidate is: | |
| /usr/include/c++/4.7/functional:2306:5: note: _Res std::function<_Res(_ArgTypes ...)>::operator()(_ArgTypes ...) const [with _Res = std::unique_ptr<int>; _ArgTypes = {int}] | |
| /usr/include/c++/4.7/functional:2306:5: note: no known conversion for argument 1 from 'std::pair<int, int>' to 'int' | |
| make: *** [ex] Error 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment