У меня есть небольшой фреймворк для работы с потоками. Основная часть - это объект, который в основном управляется мьютексом std::queue
, на который проталкивается один поток, а другой - на.
Этот класс не может быть шаблонизирован, потому что типы объектов могут варьироваться за один прогон. В настоящее время я создал тупой класс:
class Object {
public:
Object(){}
virtual ~Object(){}
};
Любой объект, который должен передаваться из потока в поток через этот класс, должен наследоваться от Object
, поскольку это то, что содержит std::queue
. Это хорошо работает, но я думаю, что должен быть лучший подход, так как этот подход требует наследования и много вызовов dynamic_cast
. Есть идеи?
РЕДАКТИРОВАТЬ Указатели в этом случае также являются интеллектуальными указателями, поэтому важно сохранять информацию о типе.