Closed Zhangwusheng closed 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); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ });
See #25
Workaround in b31cee57ed1ee038088d9051080d471fb1ed766e
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 >() )