Skip to content

Overrides throws candidate expects n arguments, n provided #1081

Open
@Banou26

Description

@Banou26

Using a struct with overrides seems to fail the build, i'm trying to use libtorrent but it throws a few hundred candidate expects x arguments, x provided errors and fails the build

use autocxx::prelude::*;
use std::ffi::CStr;

include_cpp! {
    #include "libtorrent/version.hpp"
    #include "libtorrent/session.hpp"
    
    safety!(unsafe_ffi)

    generate!("libtorrent::version")
    generate!("libtorrent::session")
}

imported code:
https://github.com/arvidn/libtorrent/blob/e9bbf16bdd899f42aef0f0c2b1f214de2c15ac92/include/libtorrent/session.hpp#L160-L190

		explicit session(session_params const& params);
		explicit session(session_params&& params);
		session(session_params const& params, session_flags_t flags);
		session(session_params&& params, session_flags_t flags);
		session();
		session(session_params&& params, io_context& ios);
		session(session_params const& params, io_context& ios);
		session(session_params&& params, io_context& ios, session_flags_t);
		session(session_params const& params, io_context& ios, session_flags_t);
		session(session&&);
		session& operator=(session&&) &;
		session(session const&) = delete;
		session& operator=(session const&) = delete;

ouput:

[...] (a few hundreds/thousands similar warnings)
  cargo:warning=  181 |   session(session_params&& params, io_context& ios, session_flags_t);
  cargo:warning=      |                                                     ^~~~~~~~~~~~~~~
  cargo:warning=/home/dev/fkn-proxy/libtorrent/session.hpp:180:3: note: candidate: 'libtorrent::session::session(const libtorrent::session_params&, boost::asio::io_context&)'
  cargo:warning=  180 |   session(session_params const& params, io_context& ios);
  cargo:warning=      |   ^~~~~~~
  cargo:warning=/home/dev/fkn-proxy/libtorrent/session.hpp:180:3: note:   candidate expects 2 arguments, 3 provided
  cargo:warning=/home/dev/fkn-proxy/libtorrent/session.hpp:179:3: note: candidate: 'libtorrent::session::session(libtorrent::session_params&&, boost::asio::io_context&)'
  cargo:warning=  179 |   session(session_params&& params, io_context& ios);
  cargo:warning=      |   ^~~~~~~
  cargo:warning=/home/dev/fkn-proxy/libtorrent/session.hpp:179:3: note:   candidate expects 2 arguments, 3 provided
  cargo:warning=/home/dev/fkn-proxy/libtorrent/session.hpp:164:3: note: candidate: 'libtorrent::session::session()'
  cargo:warning=  164 |   session();
  cargo:warning=      |   ^~~~~~~
  cargo:warning=/home/dev/fkn-proxy/libtorrent/session.hpp:164:3: note:   candidate expects 0 arguments, 3 provided
  cargo:warning=/home/dev/fkn-proxy/libtorrent/session.hpp:163:3: note: candidate: 'libtorrent::session::session(libtorrent::session_params&&, libtorrent::session_handle::session_flags_t)'
  cargo:warning=  163 |   session(session_params&& params, session_flags_t flags);
  cargo:warning=      |   ^~~~~~~
  cargo:warning=/home/dev/fkn-proxy/libtorrent/session.hpp:163:3: note:   candidate expects 2 arguments, 3 provided
  cargo:warning=/home/dev/fkn-proxy/libtorrent/session.hpp:162:3: note: candidate: 'libtorrent::session::session(const libtorrent::session_params&, libtorrent::session_handle::session_flags_t)'
  cargo:warning=  162 |   session(session_params const& params, session_flags_t flags);
  cargo:warning=      |   ^~~~~~~
  cargo:warning=/home/dev/fkn-proxy/libtorrent/session.hpp:162:3: note:   candidate expects 2 arguments, 3 provided
  cargo:warning=/home/dev/fkn-proxy/libtorrent/session.hpp:161:12: note: candidate: 'libtorrent::session::session(libtorrent::session_params&&)'
  cargo:warning=  161 |   explicit session(session_params&& params);
  cargo:warning=      |            ^~~~~~~
  cargo:warning=/home/dev/fkn-proxy/libtorrent/session.hpp:161:12: note:   candidate expects 1 argument, 3 provided
  cargo:warning=/home/dev/fkn-proxy/libtorrent/session.hpp:160:12: note: candidate: 'libtorrent::session::session(const libtorrent::session_params&)'
  cargo:warning=  160 |   explicit session(session_params const& params);
  cargo:warning=      |            ^~~~~~~
  cargo:warning=/home/dev/fkn-proxy/libtorrent/session.hpp:160:12: note:   candidate expects 1 argument, 3 provided
  exit status: 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions