![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
всем привет.
пишу свою поделку сериализации. сериализацию POD`ов и STL типов реализовал. остался реализовать сериализацию пользовательских типов. т.е., сейчас пользователь для своего типа должен реализовать такое:
но такого способа недостаточно. т.к. возможно потребуется сериализация приватных свойств класса. для этого, нужно чтоб юзер в своем классе реализовал публичный метод serialize(). и это не проблема. проблема в том, как заставить сериализатор определять, есть ли этот метод у объекта, и если есть, вызвать его? т.е. в таком случае, user_type должен быть таким:
просьба не отсылать смотреть исходники boost.serialization. смотрел. запутался и ничего не понял. спасибо. Это сообщение отредактировал(а) boostcoder - 1.5.2011, 17:19 |
||||
|
|||||
| rudvil |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 20.11.2009 Где: Latvia/Riga Репутация: 2 Всего: 3 |
http://stackoverflow.com/questions/257288/...e/257382
Странно, на LWS не работает... http://liveworkspace.org/code/f620e0ce438c...a7880a962a10d77 хотя у меня на компе все ок, mingw-4.6.0 Это сообщение отредактировал(а) rudvil - 1.5.2011, 16:18 --------------------
xor |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
rudvil, спасибо.
перешел по ссылке: http://www.rsdn.ru/forum/cpp/2759773.1.aspx просвещаюсь.. а почему код не работает, я не понимаю.. вроде бы все законно. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
так как typeof нестандартный оператор, и работает только при каких то там опциях... небольшое изменение и все компилится : http://liveworkspace.org/code/6c3ddb994de1...9cf34da757f33a9 |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
конечный код:
http://liveworkspace.org/code/5f8fb487c260...4dcaeed9db17305 всем спасибо. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
осталось задефайнить, чтоб легко можно было определять механизм проверки для нужного метода.. |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
ага. все таки, с++ забавный ЯП. главное что не унылый, т.к. постоянно что-то новое узнаешь... и так наверное без конца... не помню в какой книжке и какого автора, но он писал о том, что с++ не создавался для того чтоб при его использовании можно было писать метапрограммы. метапрограммирование в с++ _открыли_ позже. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
http://www.boost.org/doc/libs/1_31_0/libs/...html/intro.html Это сообщение отредактировал(а) mes - 3.5.2011, 02:32 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |