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;
};
}