cygnusxi / CurecoinSource

Curecoin 2.0+ Source Code
https://curecoin.net
MIT License
146 stars 57 forks source link

Doesn't build against boost 1.66.0 #27

Closed dark-saber closed 6 years ago

dark-saber commented 6 years ago

It has built fine against boost 1.65.1 on Arch Linux, but building against new version (1.66.0) leads to a bunch of errors:

src/curecoinrpc.cpp:653:102: error: wrong number of template arguments (2, should be 1)
 static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                                                      ^
In file included from /usr/include/boost/asio.hpp:30:0,
                 from src/curecoinrpc.cpp:15:
/usr/include/boost/asio/basic_socket_acceptor.hpp:73:7: note: provided for ‘template<class Protocol> class boost::asio::basic_socket_acceptor’
 class basic_socket_acceptor
       ^~~~~~~~~~~~~~~~~~~~~
src/curecoinrpc.cpp:653:104: error: template argument 1 is invalid
 static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                                                        ^
src/curecoinrpc.cpp:663:95: error: wrong number of template arguments (2, should be 1)
 static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                                               ^
In file included from /usr/include/boost/asio.hpp:30:0,
                 from src/curecoinrpc.cpp:15:
/usr/include/boost/asio/basic_socket_acceptor.hpp:73:7: note: provided for ‘template<class Protocol> class boost::asio::basic_socket_acceptor’
 class basic_socket_acceptor
       ^~~~~~~~~~~~~~~~~~~~~
src/curecoinrpc.cpp:663:97: error: template argument 1 is invalid
 static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                                                 ^
src/curecoinrpc.cpp: In function ‘void RPCListen(int, boost::asio::ssl::context&, bool)’:
src/curecoinrpc.cpp:668:91: error: base operand of ‘->’ is not a pointer
     AcceptedConnectionImpl<Protocol>* conn = new AcceptedConnectionImpl<Protocol>(acceptor->get_io_service(), context, fUseSSL);
                                                                                           ^~
src/curecoinrpc.cpp:670:13: error: base operand of ‘->’ is not a pointer
     acceptor->async_accept(
             ^~
src/curecoinrpc.cpp: At global scope:
src/curecoinrpc.cpp:685:102: error: wrong number of template arguments (2, should be 1)
 static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                                                      ^
In file included from /usr/include/boost/asio.hpp:30:0,
                 from src/curecoinrpc.cpp:15:
/usr/include/boost/asio/basic_socket_acceptor.hpp:73:7: note: provided for ‘template<class Protocol> class boost::asio::basic_socket_acceptor’
 class basic_socket_acceptor
       ^~~~~~~~~~~~~~~~~~~~~
src/curecoinrpc.cpp:685:104: error: template argument 1 is invalid
 static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                                                        ^
src/curecoinrpc.cpp: In function ‘void RPCAcceptHandler(int, boost::asio::ssl::context&, bool, AcceptedConnection*, const boost::system::error_code&)’:
src/curecoinrpc.cpp:695:17: error: base operand of ‘->’ is not a pointer
      && acceptor->is_open())
                 ^~
src/curecoinrpc.cpp:696:45: error: no matching function for call to ‘RPCListen(int&, boost::asio::ssl::context&, const bool&)’
         RPCListen(acceptor, context, fUseSSL);
                                             ^
src/curecoinrpc.cpp:663:13: note: candidate: template<class Protocol, class SocketAcceptorService> void RPCListen(int, boost::asio::ssl::context&, bool)
 static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
             ^~~~~~~~~
src/curecoinrpc.cpp:663:13: note:   template argument deduction/substitution failed:
src/curecoinrpc.cpp:696:45: note:   couldn't deduce template parameter ‘Protocol’
         RPCListen(acceptor, context, fUseSSL);
                                             ^
src/curecoinrpc.cpp: In function ‘void ThreadRPCServer2(void*)’:
src/curecoinrpc.cpp:760:58: error: no matching function for call to ‘boost::asio::ssl::context::context(boost::asio::io_service&, boost::asio::ssl::context_base::method)’
     ssl::context context(io_service, ssl::context::sslv23);
                                                          ^
In file included from /usr/include/boost/asio/ssl/context.hpp:757:0,
                 from /usr/include/boost/asio/ssl.hpp:18,
                 from src/curecoinrpc.cpp:24:
/usr/include/boost/asio/ssl/impl/context.ipp:326:1: note: candidate: boost::asio::ssl::context::context(boost::asio::ssl::context&&)
 context::context(context&& other)
 ^~~~~~~
/usr/include/boost/asio/ssl/impl/context.ipp:326:1: note:   candidate expects 1 argument, 2 provided
/usr/include/boost/asio/ssl/impl/context.ipp:63:1: note: candidate: boost::asio::ssl::context::context(boost::asio::ssl::context_base::method)
 context::context(context::method m)
 ^~~~~~~
/usr/include/boost/asio/ssl/impl/context.ipp:63:1: note:   candidate expects 1 argument, 2 provided
src/curecoinrpc.cpp:776:41: error: ‘class boost::asio::ssl::context’ has no member named ‘impl’
         SSL_CTX_set_cipher_list(context.impl(), strCiphers.c_str());
                                         ^~~~
src/curecoinrpc.cpp:801:45: error: no matching function for call to ‘RPCListen(boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp> >&, boost::asio::ssl::context&, const bool&)’
         RPCListen(acceptor, context, fUseSSL);
                                             ^
src/curecoinrpc.cpp:663:13: note: candidate: template<class Protocol, class SocketAcceptorService> void RPCListen(int, boost::asio::ssl::context&, bool)
 static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
             ^~~~~~~~~
src/curecoinrpc.cpp:663:13: note:   template argument deduction/substitution failed:
src/curecoinrpc.cpp:801:45: note:   couldn't deduce template parameter ‘Protocol’
         RPCListen(acceptor, context, fUseSSL);
                                             ^
src/curecoinrpc.cpp:827:49: error: no matching function for call to ‘RPCListen(boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp> >&, boost::asio::ssl::context&, const bool&)’
             RPCListen(acceptor, context, fUseSSL);
                                                 ^
src/curecoinrpc.cpp:663:13: note: candidate: template<class Protocol, class SocketAcceptorService> void RPCListen(int, boost::asio::ssl::context&, bool)
 static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
             ^~~~~~~~~
src/curecoinrpc.cpp:663:13: note:   template argument deduction/substitution failed:
src/curecoinrpc.cpp:827:49: note:   couldn't deduce template parameter ‘Protocol’
             RPCListen(acceptor, context, fUseSSL);
                                                 ^
src/curecoinrpc.cpp: In function ‘json_spirit::Object CallRPC(const string&, const Array&)’:
src/curecoinrpc.cpp:1070:58: error: no matching function for call to ‘boost::asio::ssl::context::context(boost::asio::io_service&, boost::asio::ssl::context_base::method)’
     ssl::context context(io_service, ssl::context::sslv23);
                                                          ^
aladar42 commented 6 years ago

+1, cannot build nor run at all.

cygnusxi commented 6 years ago

https://github.com/cygnusxi/CurecoinSource/commit/934a7710eaaab9a5dc2a4d8e98e1b6a6efc5cf85