Hello I am trying to create a multi-thread encoder, which needs a mutex and I would like that mutex to be a member of the class. However, I keep getting: copy constructor of 'simple_encoder' is implicitly deleted because field 'm_mutex' has an inaccessible copy constructor
as an error message when I compile. After a hour of so of searching I cannot find my mistake.
Please for the love of something help me, my constructor and members look like this:
namespace master_thesis
{
class simple_encoder
{
public:
simple_encoder(uint32_t symbols, uint32_t symbol_size, fifi::api::field field,
std::vector<uint8_t> data) :
m_symbols(symbols), m_symbol_size(symbol_size),
m_completed(0), m_field(field), m_data(data)
{
}
...
private:
uint32_t m_symbols;
uint32_t m_symbol_size;
uint32_t m_completed;
fifi::api::field m_field;
std::mutex m_mutex;
std::vector<uint8_t> m_data;
std::vector<std::vector<uint8_t>> m_result;
std::vector<std::shared_ptr<kodo_rlnc::full_vector_encoder>> m_encoders;
};
}