Я создал этот метод, чтобы поместить некоторые данные в буфере:метод Put в буфер в C++
template <typename T>
void locked_buffer<T>::put(const T & x, bool last) noexcept
{
using namespace std;
unique_lock<mutex> l{mut_};
not_full_.wait(l, [this] { return !do_full(); });
buf_[next_write_] = item{last,x};
next_write_ = next_position(next_write_);
l.unlock();
not_empty_.notify_one();
}
Но, пытаясь поместить данные, состоящие в возвращении функции:
int size_b;
locked_buffer<long buf1{size_b}>;
buf1.put(image, true); //image is the return of the function
У меня проблемы с логической переменной bool last
, потому что у меня есть ошибки компиляции.
Спасибо.
Edit: ошибка, что я получил это следующий:
error: no matching function for call to 'locked_buffer<long int>::put(std::vector<std::vector<unsigned char>>&, bool)'
Сообщите, пожалуйста, [MCVE] включая сообщения о стеновых сообщениях. –
Я могу только догадываться: locked_buffer –
Что именно вы получаете за компиляцию? – Eddge