Skip to content

Compiling on GCC 4.8 #386

@The-EDev

Description

@The-EDev

There are a couple issues that don't allow compiling, the most recent is this, but also the changes introduced in #327.

Here's an error log:

In file included from crow.h:19:0,
                 from main.cpp:1:
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]’
main.cpp:10:6:   required from here
crow/routing.h:584:88: error: no matching function for call to ‘wrapped_handler_call(crow::request&, crow::response&, const main()::__lambda53&)’
                   detail::wrapped_handler_call(req, res, f, std::forward<Args>(args)...);
                                                                                        ^
crow/routing.h:584:88: note: candidates are:
In file included from crow/routing.h:18:0,
                 from crow.h:19,
                 from main.cpp:1:
./crow/middleware.h:206:11: note: template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, const crow::request, crow::response&, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& req, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:206:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, const crow::request, crow::response&, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = main()::__lambda53; Args = {}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]’
main.cpp:10:6:   required from here
./crow/middleware.h:206:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]’
main.cpp:10:6:   required from here
./crow/middleware.h:216:11: note: template<class F, class ... Args> typename std::enable_if<(crow::black_magic::is_callable<F, crow::request&, crow::response&, Args ...>::value && (! crow::black_magic::is_callable<F, const crow::request, crow::response&, Args ...>::value))>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& req, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:216:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<(crow::black_magic::is_callable<F, crow::request&, crow::response&, Args ...>::value && (! crow::black_magic::is_callable<F, const crow::request, crow::response&, Args ...>::value))>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = main()::__lambda53; Args = {}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]’
main.cpp:10:6:   required from here
./crow/middleware.h:216:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]’
main.cpp:10:6:   required from here
./crow/middleware.h:226:11: note: template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, crow::response&, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& /*req*/, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:226:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, crow::response&, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = main()::__lambda53; Args = {}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]’
main.cpp:10:6:   required from here
./crow/middleware.h:226:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]’
main.cpp:10:6:   required from here
./crow/middleware.h:236:11: note: template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, crow::request, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& req, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:236:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, crow::request, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = main()::__lambda53; Args = {}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]’
main.cpp:10:6:   required from here
./crow/middleware.h:236:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]’
main.cpp:10:6:   required from here
./crow/middleware.h:247:11: note: template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, Args>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& /*req*/, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:247:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, Args>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = main()::__lambda53; Args = {}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]’
main.cpp:10:6:   required from here
./crow/middleware.h:247:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
In file included from crow.h:19:0,
                 from main.cpp:1:
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:241:22:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
crow/routing.h:584:88: error: no matching function for call to ‘wrapped_handler_call(crow::request&, crow::response&, const crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50&, std::basic_string<char>)’
                   detail::wrapped_handler_call(req, res, f, std::forward<Args>(args)...);
                                                                                        ^
crow/routing.h:584:88: note: candidates are:
In file included from crow/routing.h:18:0,
                 from crow.h:19,
                 from main.cpp:1:
./crow/middleware.h:206:11: note: template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, const crow::request, crow::response&, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& req, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:206:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, const crow::request, crow::response&, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:241:22:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:206:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:241:22:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:216:11: note: template<class F, class ... Args> typename std::enable_if<(crow::black_magic::is_callable<F, crow::request&, crow::response&, Args ...>::value && (! crow::black_magic::is_callable<F, const crow::request, crow::response&, Args ...>::value))>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& req, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:216:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<(crow::black_magic::is_callable<F, crow::request&, crow::response&, Args ...>::value && (! crow::black_magic::is_callable<F, const crow::request, crow::response&, Args ...>::value))>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:241:22:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:216:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:241:22:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:226:11: note: template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, crow::response&, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& /*req*/, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:226:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, crow::response&, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:241:22:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:226:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:241:22:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:236:11: note: template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, crow::request, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& req, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:236:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, crow::request, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:241:22:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:236:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:241:22:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:247:11: note: template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, Args>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& /*req*/, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:247:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, Args>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:241:22:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:247:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
In file included from crow.h:19:0,
                 from main.cpp:1:
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:254:129:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
crow/routing.h:584:88: error: no matching function for call to ‘wrapped_handler_call(crow::request&, crow::response&, const crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51&, std::basic_string<char>)’
                   detail::wrapped_handler_call(req, res, f, std::forward<Args>(args)...);
                                                                                        ^
crow/routing.h:584:88: note: candidates are:
In file included from crow/routing.h:18:0,
                 from crow.h:19,
                 from main.cpp:1:
./crow/middleware.h:206:11: note: template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, const crow::request, crow::response&, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& req, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:206:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, const crow::request, crow::response&, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:254:129:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:206:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:254:129:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:216:11: note: template<class F, class ... Args> typename std::enable_if<(crow::black_magic::is_callable<F, crow::request&, crow::response&, Args ...>::value && (! crow::black_magic::is_callable<F, const crow::request, crow::response&, Args ...>::value))>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& req, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:216:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<(crow::black_magic::is_callable<F, crow::request&, crow::response&, Args ...>::value && (! crow::black_magic::is_callable<F, const crow::request, crow::response&, Args ...>::value))>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:254:129:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:216:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:254:129:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:226:11: note: template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, crow::response&, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& /*req*/, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:226:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, crow::response&, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:254:129:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:226:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:254:129:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:236:11: note: template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, crow::request, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& req, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:236:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, crow::request, Args ...>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:254:129:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:236:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
crow/routing.h: In instantiation of ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’:
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:254:129:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:247:11: note: template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, Args>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...)
           wrapped_handler_call(crow::request& /*req*/, crow::response& res, const F& f, Args&&... args)
           ^
./crow/middleware.h:247:11: note:   template argument deduction/substitution failed:
./crow/middleware.h: In substitution of ‘template<class F, class ... Args> typename std::enable_if<crow::black_magic::is_callable<F, Args>::value>::type crow::detail::wrapped_handler_call(crow::request&, crow::response&, const F&, Args&& ...) [with F = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’:
crow/routing.h:584:88:   required from ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:581:16:   required from ‘struct crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’
crow/routing.h:577:22:   required from ‘void crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
crow/app.h:254:129:   required from ‘void crow::Crow<Middlewares>::validate() [with Middlewares = {}]’
crow/app.h:280:22:   required from ‘void crow::Crow<Middlewares>::run() [with Middlewares = {}]’
main.cpp:12:25:   required from here
./crow/middleware.h:247:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
In file included from /usr/include/boost/utility/compare_pointees.hpp:15:0,
                 from /usr/include/boost/optional/optional.hpp:55,
                 from /usr/include/boost/optional.hpp:15,
                 from crow/query_string.h:9,
                 from crow.h:2,
                 from main.cpp:1:
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/c++/functional:2334:2: error: ‘std::function<_Res(_ArgTypes ...)>::_Requires<std::__and_<std::__not_<std::is_same<typename std::decay<_Tp>::type, std::function<_Res(_ArgTypes ...)> > >, std::__or_<std::is_void<_Tp>, std::is_convertible<std::function<_Res(_ArgTypes ...)>::_Invoke<typename std::decay<_Tp>::type>, _Res> > >, std::function<_Res(_ArgTypes ...)>&> std::function<_Res(_ArgTypes ...)>::operator=(_Functor&&) [with _Functor = crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27; _Res = void; _ArgTypes = {crow::request&, crow::response&}; std::function<_Res(_ArgTypes ...)>::_Requires<std::__and_<std::__not_<std::is_same<typename std::decay<_Tp>::type, std::function<_Res(_ArgTypes ...)> > >, std::__or_<std::is_void<_Tp>, std::is_convertible<std::function<_Res(_ArgTypes ...)>::_Invoke<typename std::decay<_Tp>::type>, _Res> > >, std::function<_Res(_ArgTypes ...)>&> = std::function<void(crow::request&, crow::response&)>&]’, declared using local type ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = main()::__lambda53; Args = {}]::__lambda27’, is used but never defined [-fpermissive]
  operator=(_Functor&& __f)
  ^
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/c++/functional:2334:2: error: ‘std::function<_Res(_ArgTypes ...)>::_Requires<std::__and_<std::__not_<std::is_same<typename std::decay<_Tp>::type, std::function<_Res(_ArgTypes ...)> > >, std::__or_<std::is_void<_Tp>, std::is_convertible<std::function<_Res(_ArgTypes ...)>::_Invoke<typename std::decay<_Tp>::type>, _Res> > >, std::function<_Res(_ArgTypes ...)>&> std::function<_Res(_ArgTypes ...)>::operator=(_Functor&&) [with _Functor = crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27; _Res = void; _ArgTypes = {crow::request&, crow::response&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::function<_Res(_ArgTypes ...)>::_Requires<std::__and_<std::__not_<std::is_same<typename std::decay<_Tp>::type, std::function<_Res(_ArgTypes ...)> > >, std::__or_<std::is_void<_Tp>, std::is_convertible<std::function<_Res(_ArgTypes ...)>::_Invoke<typename std::decay<_Tp>::type>, _Res> > >, std::function<_Res(_ArgTypes ...)>&> = std::function<void(crow::request&, crow::response&, std::basic_string<char>)>&]’, declared using local type ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda50; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’, is used but never defined [-fpermissive]
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/c++/functional:2334:2: error: ‘std::function<_Res(_ArgTypes ...)>::_Requires<std::__and_<std::__not_<std::is_same<typename std::decay<_Tp>::type, std::function<_Res(_ArgTypes ...)> > >, std::__or_<std::is_void<_Tp>, std::is_convertible<std::function<_Res(_ArgTypes ...)>::_Invoke<typename std::decay<_Tp>::type>, _Res> > >, std::function<_Res(_ArgTypes ...)>&> std::function<_Res(_ArgTypes ...)>::operator=(_Functor&&) [with _Functor = crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27; _Res = void; _ArgTypes = {crow::request&, crow::response&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::function<_Res(_ArgTypes ...)>::_Requires<std::__and_<std::__not_<std::is_same<typename std::decay<_Tp>::type, std::function<_Res(_ArgTypes ...)> > >, std::__or_<std::is_void<_Tp>, std::is_convertible<std::function<_Res(_ArgTypes ...)>::_Invoke<typename std::decay<_Tp>::type>, _Res> > >, std::function<_Res(_ArgTypes ...)>&> = std::function<void(crow::request&, crow::response&, std::basic_string<char>)>&]’, declared using local type ‘crow::TaggedRule<Args>::operator()(Func&&) [with Func = crow::Crow<Middlewares>::validate() [with Middlewares = {}]::__lambda51; Args = {std::basic_string<char, std::char_traits<char>, std::allocator<char> >}]::__lambda27’, is used but never defined [-fpermissive]

@dranikpg would it be possible to have wrapped_handler_call compile under GCC 4.8 ? What do you think?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions