facebookincubator / fizz

C++14 implementation of the TLS-1.3 standard
Other
1.13k stars 160 forks source link

erro compiling ServerProtocol.cpp #31

Closed Zhangwusheng closed 5 years ago

Zhangwusheng commented 5 years ago

OS Versoin: CentOS 7.5 g++ version: g++ (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3) folly version: github master branch fizz version: github master branch

Error Message:


In file included from /usr/local/include/boost/variant/apply_visitor.hpp:16, from /usr/local/include/boost/variant/detail/hash_variant.hpp:22, from /usr/local/include/boost/variant/variant.hpp:34, from /usr/local/include/boost/variant.hpp:17, from /root/source/facebook/fizz/fizz/fizz/record/Types.h:11, from /root/source/facebook/fizz/fizz/fizz/crypto/signature/Signature.h:11, from /root/source/facebook/fizz/fizz/fizz/protocol/Certificate.h:11, from /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.h:13, from /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:9: /usr/local/include/boost/variant/detail/apply_visitor_unary.hpp: In instantiation of ‘struct boost::detail::variant::result_multideduce1<folly::detail::Overload<fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)> >, boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > > >::deduce_impl<boost::mpl::l_iter<boost::mpl::litem<mpl::long_<2>, folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, boost::mpl::litem<mpl::long_<1>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4> >, boost::mpl::l_end> > >, void>’: /usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:108:50: required from ‘struct boost::detail::variant::result_multideduce1<folly::detail::Overload<fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)> >, boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > > >’ /usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:114:66: required from ‘struct boost::detail::variant::result_wrapper1<folly::detail::Overload<fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)> >, boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > > >’ /usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:135:98: required from ‘decltype(auto) boost::apply_visitor(Visitor&&, Visitable&&, typename boost::disable_if<boost::detail::variant::has_result_type >::type*) [with Visitor = folly::detail::Overload<fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)> >; Visitable = boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > >&; typename boost::disable_if<boost::detail::variant::has_result_type >::type = void]’ /usr/local/include/folly/Overload.h:75:23: required from ‘decltype(auto) folly::variant_match(Variant&&, Cases&& ...) [with Variant = boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > >&; Cases = {fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)>}]’ /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:233:10: required from here /usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:98:61: error: no match for call to ‘(folly::detail::Overload<fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)> >) (folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>)’ typedef decltype(true ? boost::declval< Visitor& >()( boost::declval< value_t >() )

/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:98:61: note: candidate: ‘fizz::server::AsyncActions (*)(fizz::server::Actions&)’ {aka ‘boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > > (*)(folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>&)’} <conversion>
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:98:61: note:   conversion of argument 2 would be ill-formed:
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:98:61: error: cannot bind non-const lvalue reference of type ‘fizz::server::Actions&’ {aka ‘folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>&’} to an rvalue of type ‘folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>’
/root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:217:60: note: candidate: ‘fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4> >&)>’ <near match>
         [&state](folly::Future<Actions>& futureActions) -> AsyncActions {
                                                            ^~~~~~~~~~~~
/root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:217:60: note:   conversion of argument 1 would be ill-formed:
In file included from /usr/local/include/boost/variant/apply_visitor.hpp:16,
                 from /usr/local/include/boost/variant/detail/hash_variant.hpp:22,
                 from /usr/local/include/boost/variant/variant.hpp:34,
                 from /usr/local/include/boost/variant.hpp:17,
                 from /root/source/facebook/fizz/fizz/fizz/record/Types.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/crypto/signature/Signature.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/protocol/Certificate.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.h:13,
                 from /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:9:
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:98:61: error: cannot bind non-const lvalue reference of type ‘folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4> >&’ to an rvalue of type ‘folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4> >’
         typedef decltype(true ? boost::declval< Visitor& >()( boost::declval< value_t >() )
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:9:
/usr/local/include/folly/futures/Future.h:949:18: note:   after user-defined conversion: ‘folly::Future<T>::Future(T2&&) [with T2 = folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>; <template-parameter-2-2> = void; T = folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>]’
   /* implicit */ Future(T2&& val) : Base(std::forward<T2>(val)) {}
                  ^~~~~~
/root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:231:42: note: candidate: ‘fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)>’ <near match>
         [](Actions& immediateActions) -> AsyncActions {
                                          ^~~~~~~~~~~~
/root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:231:42: note:   conversion of argument 1 would be ill-formed:
In file included from /usr/local/include/boost/variant/apply_visitor.hpp:16,
                 from /usr/local/include/boost/variant/detail/hash_variant.hpp:22,
                 from /usr/local/include/boost/variant/variant.hpp:34,
                 from /usr/local/include/boost/variant.hpp:17,
                 from /root/source/facebook/fizz/fizz/fizz/record/Types.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/crypto/signature/Signature.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/protocol/Certificate.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.h:13,
                 from /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:9:
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:98:61: error: cannot bind non-const lvalue reference of type ‘fizz::server::Actions&’ {aka ‘folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>&’} to an rvalue of type ‘folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>’
         typedef decltype(true ? boost::declval< Visitor& >()( boost::declval< value_t >() )
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp: In instantiation of ‘struct boost::detail::variant::result_multideduce1<folly::detail::Overload<fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)> >, boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > > >::deduce_impl<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<1>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4> >, boost::mpl::l_end> >, void>’:
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:99:33:   required from ‘struct boost::detail::variant::result_multideduce1<folly::detail::Overload<fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)> >, boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > > >::deduce_impl<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<2>, folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, boost::mpl::l_item<mpl_::long_<1>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4> >, boost::mpl::l_end> > >, void>’
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:108:50:   required from ‘struct boost::detail::variant::result_multideduce1<folly::detail::Overload<fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)> >, boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > > >’
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:114:66:   required from ‘struct boost::detail::variant::result_wrapper1<folly::detail::Overload<fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)> >, boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > > >’
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:135:98:   required from ‘decltype(auto) boost::apply_visitor(Visitor&&, Visitable&&, typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type*) [with Visitor = folly::detail::Overload<fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)> >; Visitable = boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > >&; typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type = void]’
/usr/local/include/folly/Overload.h:75:23:   required from ‘decltype(auto) folly::variant_match(Variant&&, Cases&& ...) [with Variant = boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > >&; Cases = {fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)>}]’
/root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:233:10:   required from here
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:105:54: error: no match for call to ‘(folly::detail::Overload<fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)> >) (folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4> >)’
         typedef decltype(boost::declval< Visitor& >()( boost::declval< value_t >() )) type;
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:105:54: note: candidate: ‘fizz::server::AsyncActions (*)(fizz::server::Actions&)’ {aka ‘boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > > (*)(folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>&)’} <conversion>
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:105:54: note:   candidate expects 2 arguments, 2 provided
/root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:217:60: note: candidate: ‘fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4> >&)>’ <near match>
         [&state](folly::Future<Actions>& futureActions) -> AsyncActions {
                                                            ^~~~~~~~~~~~
/root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:217:60: note:   conversion of argument 1 would be ill-formed:
In file included from /usr/local/include/boost/variant/apply_visitor.hpp:16,
                 from /usr/local/include/boost/variant/detail/hash_variant.hpp:22,
                 from /usr/local/include/boost/variant/variant.hpp:34,
                 from /usr/local/include/boost/variant.hpp:17,
                 from /root/source/facebook/fizz/fizz/fizz/record/Types.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/crypto/signature/Signature.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/protocol/Certificate.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.h:13,
                 from /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:9:
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:105:54: error: cannot bind non-const lvalue reference of type ‘folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4> >&’ to an rvalue of type ‘folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4> >’
         typedef decltype(boost::declval< Visitor& >()( boost::declval< value_t >() )) type;
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:231:42: note: candidate: ‘fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)>’
         [](Actions& immediateActions) -> AsyncActions {
                                          ^~~~~~~~~~~~
/root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:231:42: note:   no known conversion for argument 1 from ‘folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4> >’ to ‘fizz::server::Actions&’ {aka ‘folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>&’}
In file included from /usr/local/include/boost/variant/apply_visitor.hpp:16,
                 from /usr/local/include/boost/variant/detail/hash_variant.hpp:22,
                 from /usr/local/include/boost/variant/variant.hpp:34,
                 from /usr/local/include/boost/variant.hpp:17,
                 from /root/source/facebook/fizz/fizz/fizz/record/Types.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/crypto/signature/Signature.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/protocol/Certificate.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.h:13,
                 from /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:9:
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp: In instantiation of ‘decltype(auto) boost::apply_visitor(Visitor&&, Visitable&&, typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type*) [with Visitor = folly::detail::Overload<fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)> >; Visitable = boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > >&; typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type = void]’:
/usr/local/include/folly/Overload.h:75:23:   required from ‘decltype(auto) folly::variant_match(Variant&&, Cases&& ...) [with Variant = boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > >&; Cases = {fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)>}]’
/root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:233:10:   required from here
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:136:74: error: no matching function for call to ‘boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > >::apply_visitor(boost::detail::variant::result_wrapper1<folly::detail::Overload<fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)> >, boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > > >&)’
     return ::boost::forward<Visitable>(visitable).apply_visitor(cpp14_vis);
                                                                          ^
In file included from /usr/local/include/boost/variant.hpp:17,
                 from /root/source/facebook/fizz/fizz/fizz/record/Types.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/crypto/signature/Signature.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/protocol/Certificate.h:11,
                 from /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.h:13,
                 from /root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:9:
/usr/local/include/boost/variant/variant.hpp:2365:5: note: candidate: ‘template<class Visitor> typename Visitor::result_type boost::variant<T0, TN>::apply_visitor(Visitor&) && [with Visitor = Visitor; T0_ = folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>; TN = {folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >}]’
     apply_visitor(Visitor& visitor) &&
     ^~~~~~~~~~~~~
/usr/local/include/boost/variant/variant.hpp:2365:5: note:   template argument deduction/substitution failed:
/usr/local/include/boost/variant/variant.hpp:2373:5: note: candidate: ‘template<class Visitor> typename Visitor::result_type boost::variant<T0, TN>::apply_visitor(Visitor&) const && [with Visitor = Visitor; T0_ = folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>; TN = {folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >}]’
     apply_visitor(Visitor& visitor) const&&
     ^~~~~~~~~~~~~
/usr/local/include/boost/variant/variant.hpp:2373:5: note:   template argument deduction/substitution failed:
/usr/local/include/boost/variant/variant.hpp:2383:5: note: candidate: ‘template<class Visitor> typename Visitor::result_type boost::variant<T0, TN>::apply_visitor(Visitor&) & [with Visitor = Visitor; T0_ = folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>; TN = {folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >}’
     apply_visitor(Visitor& visitor)
     ^~~~~~~~~~~~~
/usr/local/include/boost/variant/variant.hpp:2383:5: note:   template argument deduction/substitution failed:
/usr/local/include/boost/variant/variant.hpp:2394:5: note: candidate: ‘template<class Visitor> typename Visitor::result_type boost::variant<T0, TN>::apply_visitor(Visitor&) const & [with Visitor = Visitor; T0_ = folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>; TN = {folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >}]’
     apply_visitor(Visitor& visitor) const
     ^~~~~~~~~~~~~
/usr/local/include/boost/variant/variant.hpp:2394:5: note:   template argument deduction/substitution failed:
/root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp: In function ‘fizz::server::AsyncActions fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)’:
/root/source/facebook/fizz/fizz/fizz/server/ServerProtocol.cpp:215:32: error: could not convert ‘folly::variant_match<boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > >&, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> >&)>, fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)> >(actions, <lambda closure object>fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4> >&)>{(* & state)}, <lambda closure object>fizz::server::detail::processEvent(const fizz::server::State&, fizz::Param)::<lambda(fizz::server::Actions&)>{})’ from ‘void’ to ‘fizz::server::AsyncActions’ {aka ‘boost::variant<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4>, folly::Future<folly::small_vector<boost::variant<fizz::DeliverAppData, fizz::WriteToSocket, fizz::server::ReportHandshakeSuccess, fizz::server::ReportEarlyHandshakeSuccess, fizz::ReportError, fizz::EndOfData, folly::Function<void(fizz::server::State&)>, fizz::WaitForData, fizz::server::AttemptVersionFallback, fizz::SecretAvailable>, 4, void, void, void> > >’}
     return folly::variant_match(
            ~~~~~~~~~~~~~~~~~~~~^
         actions,
     [&state](folly::Future<Actions>& futureActions) -> AsyncActions {
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       return std::move(futureActions)
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .thenError([&state](folly::exception_wrapper ew) {
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             auto ex = ew.get_exception<FizzException>();
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             if (ex) {
             ~~~~~~~~~       
               return detail::handleError(
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   state, ReportError(std::move(ew)), ex->getAlert());
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             }
             ~               
             return detail::handleError(
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 state,
                 ~~~~~~      
                 ReportError(std::move(ew)),
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 AlertDescription::unexpected_message);
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           });
           ~~~               
     },
     ~~                      
     [](Actions& immediateActions) -> AsyncActions {
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       return std::move(immediateActions);
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     });
reanimus commented 5 years ago

See #25

mingtaoy commented 5 years ago

Workaround in b31cee57ed1ee038088d9051080d471fb1ed766e