Спасибо @xSci. Уточню строение класса и с каким форматом он работает. Этот класс работает со интерфейсом стрима, к примеру std::iostream. Ссылка на интерфейс передается в конструкторе класса CustomFormat. Клиент открывает потомка std::iostream, любой из: файловый или память или сеть, не важно и передает этому классу CustomFormat. Строение хидеров простое, к примеру:
Ну почему же плохой, примеров других классов приближенных к этому достаточно много. К примеру: PE lib она правда уже немного устарела, не тем не менее она очень похожа этот класс за исключением нескольких нюансов
А суть этой темы не в том что лучше на практике, повторюсь уже в третий раз в этой теме, в том что «Следуя этому принципу, именно этому принципу одной обязанности на класс, нужно или нет выносить операции load\save за пределы этого класса?». Прошу почитать этот принцип и ответить не из практических соображений, а отталкиваясь исключительно от этого принципа.
Я отлично понимаю, что принципы иногда нужно нарушать, но в этой теме я задал вопрос сугубо теоретический, а не практический!
С Вами не соглассны в этом комментарии, слова:
Если по сути вопроса — то ответ «да», для следования указанному принципу нужно сериализацию выводить за пределы класса.
>>Эта, извините за мой французский, херня Вас волнует?
Если по сути вопроса — то ответ «да», для следования указанному принципу нужно сериализацию выводить за пределы класса.
Ровно это мне и нужно было, просто понять правильно ли я понимаю принцип. Просто когда сталкиваешься с задачей то нужно иметь рабочий инструмент. Другими словами, прежде чем чем-то оперировать, надо убедиться что это что-то достаточно хорошо понимаешь. Практика это постоянные компромиссы между чем-то одним и чем-то другим. Но без понимания мат.части далеко двинуться не возможно. Спасибо за то что правильно поняли суть вопроса!
Хотите сказать Фриман писать не умеет и надо читать в википедиа? Вопрос стоит не так «объясните мне принцип», а так «прошу проверить правильно ли я понял». Это означает что хоть минуту но уделил чтению и обдумыванию!
Спасибо огромное!!!
0) Спасибо за boost::make_shared, я буст от силы 3 недели использую и пока нет таких знаний как у Вас
1) «Магические константы» 0xE9 к самой предметной области никакого отношения не имеют. Надо было «что-то» записать и это «что-то» проверить с прочитанным после записи. Этим «что-то» вполне могло быть вполне и 0xFF или любое другое значение. Это «что-то» относится к тесту. Поэтому мне показалось что излишне эти константы называть const uint8_t EtalonValue = 0xE9 но за спасибо за совет по вынесению в отдельное пространство имен.
2) Да, Вы вернозаметили, что в моей программе есть механизм ввода\вывода не только по средством fstream. На самом деле в конструкторе класса CustomImage32 я принимаю boost::shared_ptr<std::iostream> что дает мне возможность работать с любым наследником std::iostream в том числе и с std::fstream. Хотя сейчас задумываюсь о boost::iostream-ах или boost::asio, но эти улучшения чуть позже, сейчас нужно получить хоть какой-то но рабочий экземпляр кода
Вот ровно по этой-то причине и начал париться куда деньги уходят.
>>лучше справится с этой
Уверены? У меня лично не так. Начинаю считать деньги на что потрачены, то вижу что все по делу и упрекнуть-то не в чем!
>>чем поделки под мобилки.
А вы не видели моего требований к тому что ищу? Напомню, ПО для Windows или FreeBSD. Покажите мне хоть одну мобилу на которой FreeBSD стоит?
Я в своем комментарии забыл указать «не» в предложении:
>>Я пробовал подобное, только в Microsoft продукции, а в OpenOffice.
У меня вот вот состоится переход на использование FreeBSD дома, а использование vbscript означает еще один повод остаться на windows на какое-то время! Ровно из-за этого в свое время стал использовать OpenOffice.
Спасибо за совет! Однако мне нужно с достаточно подробной детализацией, чтобы видеть где я начал потреблять больше, чем в прошлые 2-3 месяца. Также хочу анализировать как те или иные категории продуктов растут, чтобы оценивать личную инфляцию и с каким конкретно вопросом подходить к шефу. Ну и ряд других вопросов
Пока из просмотренных мною предложений вижу что моим требованиям удовлетворяет www.gnucash.org/, однако опыта практического использования нет, возможно кто-то может что-то о нем сказать
Да, Online не интересует, т.к. я люблю иметь бэкап, а при использовании online сервисов приходится писать скрипты, которые лезут и забирают что мне нужно и сохраняют на комп. Бывает так, что на сервисе что-либо поменяли и мне в очередной раз нужно лезть в скрипт и править код. Мне бы не хотелось тратить время там где можно было бы не тратить. Сумбурно, но думаю мысль Вы уловили )
Я пробовал подобное, только в Microsoft продукции, а в OpenOffice. Такой подход не понравился тем что при возникающих иногда вопросах приходится экспортить в CSV писать скрипт на Python.
Вы хотите сказать, что как только появляется язык еще выше чем предыдущий, то последний перестает считаться «высокоуровневым»? Бред! С как был так и остается высокоуровневым!