enewhuis / liquibook

Modern C++ order matching engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compile error

MStumpp opened this issue · comments

OS: Ubuntu 16.04.3 LTS
Compiler: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)

g++ -std=c++11 -I/usr/local/boost-1.63.0/include -I/usr/local/boost-1.63.0/include/boost -fPIC -O -D_REENTRANT -I"/usr/local/boost-1.63.0/include/boost-1.63.0" -I"/usr/local/boost-1.63.0/." -I"/home/ubuntu/liquiboo/quickfast/src" -I"/home/ubuntu/liquiboo/liquibook/src" -c -o "subscriber_main.o" subscriber_main.cpp
In file included from /usr/local/boost-1.63.0/include/boost/bind.hpp:22:0,
from subscriber_main.cpp:2:
/usr/local/boost-1.63.0/include/boost/bind/bind.hpp: In instantiation of 'R boost::_bi::list3<A1, A2, A3>::operator()(boost::_bi::type, F&, A&, long int) [with R = bool; F = boost::_mfi::mf2<bool, liquibook::examples::DepthFeedSubscriber, boost::shared_ptr<boost::array<unsigned char, 128ul> >&, long unsigned int>; A = boost::_bi::rrlist2<boost::shared_ptr<boost::array<unsigned char, 128ul> >, long unsigned int>; A1 = boost::_bi::valueliquibook::examples::DepthFeedSubscriber*; A2 = boost::arg<1>; A3 = boost::arg<2>]':
/usr/local/boost-1.63.0/include/boost/bind/bind.hpp:1318:50: required from 'boost::_bi::bind_t<R, F, L>::result_type boost::_bi::bind_t<R, F, L>::operator()(A1&&, A2&&) [with A1 = boost::shared_ptr<boost::array<unsigned char, 128ul> >; A2 = long unsigned int; R = bool; F = boost::_mfi::mf2<bool, liquibook::examples::DepthFeedSubscriber, boost::shared_ptr<boost::array<unsigned char, 128ul> >&, long unsigned int>; L = boost::_bi::list3<boost::_bi::valueliquibook::examples::DepthFeedSubscriber*, boost::arg<1>, boost::arg<2> >; boost::_bi::bind_t<R, F, L>::result_type = bool]'
/usr/local/boost-1.63.0/include/boost/function/function_template.hpp:138:22: required from 'static R boost::detail::function::function_obj_invoker2<FunctionObj, R, T0, T1>::invoke(boost::detail::function::function_buffer&, T0, T1) [with FunctionObj = boost::_bi::bind_t<bool, boost::_mfi::mf2<bool, liquibook::examples::DepthFeedSubscriber, boost::shared_ptr<boost::array<unsigned char, 128ul> >&, long unsigned int>, boost::_bi::list3<boost::_bi::valueliquibook::examples::DepthFeedSubscriber*, boost::arg<1>, boost::arg<2> > >; R = bool; T0 = boost::shared_ptr<boost::array<unsigned char, 128ul> >; T1 = long unsigned int]'
/usr/local/boost-1.63.0/include/boost/function/function_template.hpp:936:38: required from 'void boost::function2<R, T1, T2>::assign_to(Functor) [with Functor = boost::_bi::bind_t<bool, boost::_mfi::mf2<bool, liquibook::examples::DepthFeedSubscriber, boost::shared_ptr<boost::array<unsigned char, 128ul> >&, long unsigned int>, boost::_bi::list3<boost::_bi::valueliquibook::examples::DepthFeedSubscriber*, boost::arg<1>, boost::arg<2> > >; R = bool; T0 = boost::shared_ptr<boost::array<unsigned char, 128ul> >; T1 = long unsigned int]'
/usr/local/boost-1.63.0/include/boost/function/function_template.hpp:727:7: required from 'boost::function2<R, T1, T2>::function2(Functor, typename boost::enable_if_c<(! boost::is_integral::value), int>::type) [with Functor = boost::_bi::bind_t<bool, boost::_mfi::mf2<bool, liquibook::examples::DepthFeedSubscriber, boost::shared_ptr<boost::array<unsigned char, 128ul> >&, long unsigned int>, boost::_bi::list3<boost::_bi::valueliquibook::examples::DepthFeedSubscriber*, boost::arg<1>, boost::arg<2> > >; R = bool; T0 = boost::shared_ptr<boost::array<unsigned char, 128ul> >; T1 = long unsigned int; typename boost::enable_if_c<(! boost::is_integral::value), int>::type = int]'
/usr/local/boost-1.63.0/include/boost/function/function_template.hpp:1072:16: required from 'boost::function<R(T0, T1)>::function(Functor, typename boost::enable_if_c<(! boost::is_integral::value), int>::type) [with Functor = boost::bi::bind_t<bool, boost::mfi::mf2<bool, liquibook::examples::DepthFeedSubscriber, boost::shared_ptr<boost::array<unsigned char, 128ul> >&, long unsigned int>, boost::bi::list3<boost::bi::valueliquibook::examples::DepthFeedSubscriber*, boost::arg<1>, boost::arg<2> > >; R = bool; T0 = boost::shared_ptr<boost::array<unsigned char, 128ul> >; T1 = long unsigned int; typename boost::enable_if_c<(! boost::is_integral::value), int>::type = int]'
subscriber_main.cpp:19:34: required from here
/usr/local/boost-1.63.0/include/boost/bind/bind.hpp:388:42: error: no match for call to '(boost::mfi::mf2<bool, liquibook::examples::DepthFeedSubscriber, boost::shared_ptr<boost::array<unsigned char, 128ul> >&, long unsigned int>) (liquibook::examples::DepthFeedSubscriber*&, boost::shared_ptr<boost::array<unsigned char, 128ul> >, long unsigned int)'
return unwrapper::unwrap(f, 0)(a[base_type::a1
], a[base_type::a2
], a[base_type::a3
]);
^
In file included from /usr/local/boost-1.63.0/include/boost/bind/mem_fn.hpp:215:0,
from /usr/local/boost-1.63.0/include/boost/mem_fn.hpp:22,
from /usr/local/boost-1.63.0/include/boost/bind/bind.hpp:26,
from /usr/local/boost-1.63.0/include/boost/bind.hpp:22,
from subscriber_main.cpp:2:
/usr/local/boost-1.63.0/include/boost/bind/mem_fn_template.hpp:278:7: note: candidate: R boost::mfi::mf2<R, T, A1, A2>::operator()(T*, A1, A2) const [with R = bool; T = liquibook::examples::DepthFeedSubscriber; A1 = boost::shared_ptr<boost::array<unsigned char, 128ul> >&; A2 = long unsigned int]
R operator()(T * p, A1 a1, A2 a2) const
^
/usr/local/boost-1.63.0/include/boost/bind/mem_fn_template.hpp:278:7: note: conversion of argument 2 would be ill-formed:
In file included from /usr/local/boost-1.63.0/include/boost/bind.hpp:22:0,
from subscriber_main.cpp:2:
/usr/local/boost-1.63.0/include/boost/bind/bind.hpp:388:42: error: invalid initialization of non-const reference of type 'boost::shared_ptr<boost::array<unsigned char, 128ul> >&' from an rvalue of type 'boost::shared_ptr<boost::array<unsigned char, 128ul> >'
return unwrapper::unwrap(f, 0)(a[base_type::a1
], a[base_type::a2
], a[base_type::a3
]);

However, compiles successfully without boost.

@MStumpp Hi, same error I got on Centos 7.2. Have you solved ?

same error I got ubuntu 16.04, with boost 1_62_0
Kindly help