Я бы хотел добиться чего-то похожего на интерфейс Runnable из Java. Я пытаюсь сделать это таким образом:
class Runnable{
public:
void start(){
t = std::thread(&Runnable::run, this);
}
protected:
virtual void run(){
}
};
Идея проста. Я хотел бы перегрузить метод run, а затем start () должен запустить перегруженный. Но ... это не работает.
terminate called after throwing an instance of 'std::system_error'
what(): Operation not permitted
PS Я загружаю экземпляр класса, производный от Runnable, из динамической библиотеки с помощью dlopen.