bsdelf / mous

Lightweight audio player & converter for FreeBSD/Linux/macOS
BSD 2-Clause "Simplified" License
71 stars 17 forks source link

error: no matching constructor for initialization of 'std::tuple<int, mous::UnitBuffer *, std::weak_ptr<scx::Mailbox<int, mous::UnitBuffer *>>>' #18

Open yurivict opened 2 years ago

yurivict commented 2 years ago

Build fails on FreeBSD 14-CURRENT:

In file included from /wrkdirs/usr/ports/audio/mous/work/mous-2.0.1/core/Player.cc:1:
In file included from /wrkdirs/usr/ports/audio/mous/work/mous-2.0.1/sdk/core/Player.h:4:
In file included from /usr/include/c++/v1/vector:274:
In file included from /usr/include/c++/v1/__bit_reference:15:
In file included from /usr/include/c++/v1/algorithm:667:
In file included from /usr/include/c++/v1/functional:506:
In file included from /usr/include/c++/v1/__functional/function.h:22:
In file included from /usr/include/c++/v1/__memory/shared_ptr.h:21:
/usr/include/c++/v1/__memory/allocator.h:151:28: error: no matching constructor for initialization of 'std::tuple<int, mous::UnitBuffer *, std::weak_ptr<scx::Mailbox<int, mous::UnitBuffer *>>>'
        ::new ((void*)__p) _Up(_VSTD::forward<_Args>(__args)...);
                           ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
/usr/include/c++/v1/__memory/allocator_traits.h:290:13: note: in instantiation of function template specialization 'std::allocator<std::tuple<int, mous::UnitBuffer *, std::weak_ptr<scx::Mailbox<int, mous::UnitBuffer *>>>>::construct<std::tuple<int, mous::UnitBuffer *, std::weak_ptr<scx::Mailbox<int, mous::UnitBuffer *>>>, int, mous::UnitBuffer *&>' requested here
        __a.construct(__p, _VSTD::forward<_Args>(__args)...);
            ^
/usr/include/c++/v1/deque:1957:21: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<std::tuple<int, mous::UnitBuffer *, std::weak_ptr<scx::Mailbox<int, mous::UnitBuffer *>>>>>::construct<std::tuple<int, mous::UnitBuffer *, std::weak_ptr<scx::Mailbox<int, mous::UnitBuffer *>>>, int, mous::UnitBuffer *&, void>' requested here
    __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()),
                    ^ 
/wrkdirs/usr/ports/audio/mous/work/mous-2.0.1/sdk/scx/Mailbox.h:38:16: note: in instantiation of function template specialization 'std::deque<std::tuple<int, mous::UnitBuffer *, std::weak_ptr<scx::Mailbox<int, mous::UnitBuffer *>>>>::emplace_back<int, mous::UnitBuffer *&>' requested here 
        queue_.emplace_back(std::forward<Args>(args)...);
               ^
/wrkdirs/usr/ports/audio/mous/work/mous-2.0.1/core/PlayerImpl.h:313:29: note: in instantiation of function template specialization 'scx::Mailbox<int, mous::UnitBuffer *>::EmplaceBack<int, mous::UnitBuffer *&>' requested here
            m_BufferMailbox.EmplaceBack(0, unitBuffer);
                            ^
/usr/include/c++/v1/tuple:516:5: note: candidate constructor template not viable: no known conversion from 'int' to 'std::allocator_arg_t' for 1st argument
    tuple(allocator_arg_t, _Alloc const& __a)
    ^

clang-14.0.5 Version: 2.0.1