Здравствуйте, Тёмчик, Вы писали:
S>>Понятнее не стало. Вот есть C API вида:
S>>S>>void * somelib_data_create();
S>>void somelib_data_on_ready(void *);
S>>void somelib_data_destroy(void *);
S>>
S>>При нажатии на кнопку Ok нужно вызывать somelib_data_on_ready и передать в него указатель, полученный ранее при вызове somelib_data_destroy.
Тё>Тё>onData(char[] buffer, int offset, int length, Reader *reader) {
Тё> // ... read envelope
Тё> reader.accept(envelope)
Тё>}
Тё>
Что это за кусок говна, пардон май френч? И каким боком этот кусок к вопросу о применимости Visitor для работы с C API?
S>>Каким образом здесь применим Visitor?
Тё>В вашем примитивном мирке, действительно, visitor не нужен. У вас нет API
Т.е. вы в очередной раз публично обосрались?
S>>Этого будет мало.
Тё>unique_ptr с кастомным deleter-м достаточно.
Нет. Но, похоже, у вас недостаточно знаний и понимания предмета.
S>>У вас, похоже, это была боль. Даже нет, у вас это была БОЛЬ. Причем такая, что отзывается до сих пор.
Тё>Когда этим занимался, было привычно. Вы просто принюхались — посмотрите на более другие языки, где простейшие вещи не требуют титанических мозгозатрат.
Так и в C++ не требуют. Просто к C++ нужно относиться как к C++, к Java как к Java, к JavaScript-у как к JavaScript-у. И не пытаться натягивать сову на глобус.
S>>Вот опять звиздеж. Делают. В том числе и на современных. В том числе и с использованием кусков из STL. Ничего не мешает в рилтайм-коде использовать std::find, std::accumulate, std::array и подобный код. Да даже аллоцирующие контейнеры вроде vector, map, set можно применять, если они наполняются в момент инициализации приложения.
Тё>Какой толк от "аллоцирующие контейнеры вроде vector, map, set", если они не могут аллцировать в момент работы приложения?
Они хранят данные, к которым вам нужно обращаться в процессе работы, ваш К.О.
И да, в рилтайме после инициализации и входа в рилтайм режим не аллоцируют вне зависимости от ЯП (будь то С, Ada или "Си с классами").
Тё>А Вы так и будете булькаться на уровне "аллоцирующие контейнеры вроде vector, map, set".
Вы так говорите, как будто в этом есть что-то плохое. Попробуйте еще урологу или проктологу с 30 годами стажа предъявить претензию о том, что они всю жизнь в таких местах колупаются.