facebookincubator/fizz

erro compiling ServerProtocol.cpp

Zhangwusheng opened this issue · 2 comments

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::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 >::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>&)’}
/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> >&)>’
[&state](folly::Future& 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::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>; = 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(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&)>’
[](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 >::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: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>&)’}
/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> >&)>’
[&state](folly::Future& 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 >::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: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).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 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 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 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 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, 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)}, 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& futureActions) -> AsyncActions {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
return std::move(futureActions)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.thenError([&state](folly::exception_wrapper ew) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
auto ex = ew.get_exception();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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 b31cee5