Alu:
СМ>>Это субъективные недостатки, а есть объективные?
Alu>Отсутствие ОО подхода для меня есть объективный минус.
Хорошо сказано
Интересно, где в этом IRunable ОО подход используется? По-моему, это всего лишь уродливый костыль для запуска потока. Поточная функция Run — это деталь реализации, и ей нечего делать в пользовательском интерфейсе объекта. А если внутренней реализации объекта нужно выполнить какую-то функцию (с передачей в неё всех необходимых данных) в отдельном потоке, то это можно сделать через нормальный функциональный объект — функтор (именно функторы в C++ служат для упаковки функций и данных в одно целое). Абстракция Callable, основанная на статическом полиморфизме, более гибкая, чем IRunable, т.к. не вынуждает пользователя наследоваться о каких-то классов и позволяет паковать функциональные объекты из составляющих прямо сходу (а-ля boost::bind).