QUOTE (AHTOXA @ Nov 14 2012, 00:04)

Ладно, раз уж у Гарри такая идиосинкразия к этому варианту, то давайте сделаем его расширением. Я попробовал, оказывается это работает точно так же

Вот, приаттачу пока сюда, а на днях выложу в репозиторий (Уж здесь-то, я думаю, возражений не последует?).
[attachment=72666:CustomProcess.h.zip]
Э-э, мы, вроде, договорились, что если реализация не страдает, то принимаем. Т.ч. это можно не расширением, а основным вариантом делать. Клади в trunk, попробуем при случае.
QUOTE (ReAl @ Nov 14 2012, 01:44)

Хотя нынешний процесс -- скорее шасси, на которое можно пассажирскую газельку навесить, можно бортовую. Предлагается только вариант на шлее тянуть за этим шасси телегу.
Да, скорее просто платформа для перевозки. Проблема в том, она не очень хорошо переделывается ни в полноценный грузовик, ни в автобус (из-за статика).
QUOTE (ReAl @ Nov 14 2012, 01:44)

Ну да. Только я считаю абсолютно полноправным (равноправным с другими) вариант
CODE
class Тгрузовик : public Ттранспорт;
class Тавтобус : public Ттранспорт;
И не считаю, что всегда и везде единственно правильно
CODE
class Тгрузовик { public: едь(); };
Ттранспорт<..> транспорт1;
Тгрузовик грузовик;
транспорт1::толкай() { грузовик.едь(); }
Да, это хорошая схема, годная, против такой я бы не возражал. Вот если получится это:
QUOTE (AHTOXA @ Nov 14 2012, 00:04)

И ещё попробую сделать вариант с нестатическим exec(). Тоже в виде расширения. Чтоб уж совсем была инкапсуляция

то тогда в корне пересмотрим подход. Почему там статик, я сейчас уже не помню, то ли что-то не получалось по-иному сделать, то ли тогда видение было таким, идеология. Исторически сложилось. Исходно упор был на минимизацию и лёгкость, нынче времена меняются, можно и основные концепции пересмотреть в каких-то пределах.
QUOTE (ReAl @ Nov 14 2012, 01:44)

Может, я наглухо испорчен борландсишным
CODE
class TMyThread : public TThread {
protected:
virtual void execute(); // А в этой теме предлагается вместо virtual передать базе тип потомка
но мне это не кажется настолько ненормальным, что нельзя это добавить в саму ОС. Другое дело, если бы это ломало все существующие наработки, но оно же прозрачно для старых проектов.
И не у меня последнего такая хотелка, как видим.
Ну, с методами (виртуальными функциями) в борланде всё понятно - там-то это как правило именно тред - поток управления, который имеет начало и конец - вызвали его, он отработал и кончился. И тут нужна гибкость при вызове, чтобы можно строить элегантные схемы с обработкой - вызывать автоматом нужный в каждом контексте метод. Это не про нас.
Что касается самой схемы передачи типа объекта аргументом шаблона, который участвует в наследовании, то это основа для создания стратегий (Александреску). Это достаточно глубокая вещь. В данном же случае это просто синтаксический выверт, и как ты выражаешься: "страдает моё чувство прекрасного".

Но как уже сказал выше, раз с совместимостью и кодогенерацией никаких проблем нет, пусть будет этот вариант, если он кому-то больше нравится (хотя я не вижу, повторяю, в этом особого смысла - инкапсулированного объекта не получается, придётся руками объявлять все поля-данные вне пределов класса и т.д.).
«Отыщи всему начало, и ты многое поймёшь» К. Прутков