История изменений
Исправление a--, (текущая версия) :
Я Gcc давно не пробовал, так как на нем и собирает долго, и сообщения об ошибках у него отличались особой нечитаемостью, да и крэшился он через версию. ... Так вот, gcc-10/11/12 на Мемории крэшатся.
Присоединяюсь к камушку в огород gcc. Потому что неправильная модель разработки.
Так что не только для тебя мой код труден. Даже компиляторы не выдерживают.
Предположим что код написан без лени и без «ну все равно его потом выбросят». Тогда, скорее всего, он труден для понимания из-за того, что читающему неизвестна модель предметной области, на которую ориентировался пишущий.
Кстати, вот как я переписал твою attach, которую «все равно потом выбросят»:
void attach(EntryT* entry)
{
switch(entry->queue_kind)
{
case A1i : shift_and_insert< A1i, A1o >(entry); break;
case A1o : shift_and_insert< A1o, BlackHole >(entry); break;
case Am : shift_and_insert< Am, BlackHole >(entry); break;
default : THROW(__LINE__) ; break;
}
}
Весь класс уменьшился на 40...60 строк.
--------------------------------------------------------------------
И я категорически не согласен с твоей мыслью что потенциальные контрибьютеры «избалованы». Нет, это авторы проектов не уделяют внимания документированию и рассказу своей модели. У авторов, правда, есть некоторые слабые оправдания, но это не повод делать выводы о потенциальных контрибьютерах.
(Чуть вбок: что касается модели мемории, то она мне интересна.)
Я думаю имеет смысл сделать пост на ЛОРе на тему избалованности и моделей.
Исправление a--, :
Я Gcc давно не пробовал, так как на нем и собирает долго, и сообщения об ошибках у него отличались особой нечитаемостью, да и крэшился он через версию. ... Так вот, gcc-10/11/12 на Мемории крэшатся.
Присоединяюсь к камушку в огород gcc. Потому что неправильная модель разработки.
Так что не только для тебя мой код труден. Даже компиляторы не выдерживают.
Предположим что код написан без лени и без «ну все равно его потом выбросят». Тогда, скорее всего, он труден для понимания из-за того, что читающему неизвестна модель предметной области, на которую ориентировался пишущий.
Кстати, вот как я переписал твою attach, которую «все равно потом выбросят»:
void attach(EntryT* entry)
{
switch(entry->queue_kind)
{
case A1i : shift_and_insert< A1i, A1o >(entry); break;
case A1o : shift_and_insert< A1o, BlackHole >(entry); break;
case Am : shift_and_insert< Am, BlackHole >(entry); break;
default : THROW(__LINE__) ; break;
}
}
Весь класс уменьшился на 40...60 строк.
--------------------------------------------------------------------
И я категорически не согласен с твоей мыслью что потенциальные контрибьютеры «избалованы». Нет, это авторы проектов не уделяют внимания документированию и рассказу своей модели. У авторов, правда, есть некоторые слабые оправдания, но это не повод делать выводы о контрибьютерах.
(Чуть вбок: что касается модели мемории, то она мне интересна.)
Я думаю имеет смысл сделать пост на ЛОРе на тему избалованности и моделей.
Исправление a--, :
Я Gcc давно не пробовал, так как на нем и собирает долго, и сообщения об ошибках у него отличались особой нечитаемостью, да и крэшился он через версию. ... Так вот, gcc-10/11/12 на Мемории крэшатся.
Присоединяюсь к камушку в огород gcc. Потому что неправильная модель разработки.
Так что не только для тебя мой код труден. Даже компиляторы не выдерживают.
Предположим что код написан без лени и без «ну все равно его потом выбросят». Тогда, скорее всего, он труден для понимания когда читающему неизвестна модель предметной области, на которую ориентировался пишущий.
Кстати, вот как я переписал твою attach, которую «все равно потом выбросят»:
void attach(EntryT* entry)
{
switch(entry->queue_kind)
{
case A1i : shift_and_insert< A1i, A1o >(entry); break;
case A1o : shift_and_insert< A1o, BlackHole >(entry); break;
case Am : shift_and_insert< Am, BlackHole >(entry); break;
default : THROW(__LINE__) ; break;
}
}
Весь класс уменьшился на 40...60 строк.
--------------------------------------------------------------------
И я категорически не согласен с твоей мыслью что потенциальные контрибьютеры «избалованы». Нет, это авторы проектов не уделяют внимания документированию и рассказу своей модели. У авторов, правда, есть некоторые слабые оправдания, но это не повод делать выводы о контрибьютерах.
(Чуть вбок: что касается модели мемории, то она мне интересна.)
Я думаю имеет смысл сделать пост на ЛОРе на тему избалованности и моделей.
Исходная версия a--, :
Я Gcc давно не пробовал, так как на нем и собирает долго, и сообщения об ошибках у него отличались особой нечитаемостью, да и крэшился он через версию. ... Так вот, gcc-10/11/12 на Мемории крэшатся.
Присоединяюсь к камушку в огород gcc. Потому что неправильная модель разработки.
Так что не только для тебя мой код труден. Даже компиляторы не выдерживают.
Предположим что код написан без лени и без «ну все равно его потом выбросят». Тогда, скорее всего, он труден для понимания когда читающему неизвестна модель предметной области, на которую ориентировался пишущий.
Кстати, вот как я переписал твою attach, которую «все равно потом выбросят»:
void attach(EntryT* entry)
{
switch(entry->queue_kind)
{
case A1i : shift_and_insert< A1i, A1o >(entry); break;
case A1o : shift_and_insert< A1o, BlackHole >(entry); break;
case Am : shift_and_insert< Am, BlackHole >(entry); break;
default : THROW(__LINE__) ; break;
}
}
Весь класс уменьшился на 40...60 строк.
--------------------------------------------------------------------
И я категорически не согласен с твоей мыслью что потенциальные контрибьютеры «избалованы». Нет, это авторы проектов не уделяют внимания рассказу своей модели. У авторов, правда, есть некоторые слабые оправдания, но это не повод делать выводы о контрибьютерах.
Я думаю имеет смысл сделать пост на ЛОРе на тему избалованности и моделей.