Re[4]: константа и не константа одновременно(почти)
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.05.15 15:11
Оценка:
Здравствуйте, Nikе, Вы писали:

N>Кстати, это вопрос на собеседовании, что значат:

N>const T* t;
N>T const* t;
N>T* const t;

да, знаю: все что справа звездочки — относится к указателю, все что слева — к тому на что указывает.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[8]: константа и не константа одновременно(почти)
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.05.15 16:19
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Что называется, ОЙ!

поясни, плиз, что ты пытаешься сказать?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[9]: константа и не константа одновременно(почти)
От: Кодт Россия  
Дата: 08.05.15 16:44
Оценка:
Здравствуйте, niXman, Вы писали:

К>>Что называется, ОЙ!

X>поясни, плиз, что ты пытаешься сказать?

То, что я упустил этот момент
Что в твоём случае бывает сериализация константного объекта, и, как следствие, константность проникает внутрь пары.

Но, как уже сказал-показал, можно просто хакнуть константность и сериализовать всегда неконстантный объект. Хотя бы затем, чтобы два раза одинаковый код не писать.
Либо же придётся делать ещё один шаблон функции сериализации, параметризуемый ±константным типом твоей большой структуры.
class YourStruct
{
  template<class Myself, class Ar> // Myself = YourStruct (+const)
  friend do_serialize(Myself& myself, Ar& ar)
  {
    apply(ar, tie("x", myself.x), tie("y", myself.y), tie("z", myself.z));
  }

public:
  template<class Ar> void serialize(Ar& ar)       { do_serialize(*this, ar); } // load/save
  template<class Ar> void serialize(Ar& ar) const { do_serialize(*this, ar); } // save only
};
Перекуём баги на фичи!
Re[10]: константа и не константа одновременно(почти)
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.05.15 16:52
Оценка:
Здравствуйте, Кодт, Вы писали:

К>То, что я упустил этот момент

К>Что в твоём случае бывает сериализация константного объекта, и, как следствие, константность проникает внутрь пары.
ну да.

К>Но, как уже сказал-показал, можно просто хакнуть константность и сериализовать всегда неконстантный объект.

случаев, когда бы мне приходилось использовать отдельные сериализаторы/десериализаторы — в моей практике еще небыло. да и в чужих кодах я такого не встречал, правда.
да и константные объекты, так же, сериализовать не приходилось...

возможность юзеру реализовать отдельные сериализаторы/десериализаторы была добавлена мной исключительно ради "на всякий случай". один из таких примеров — условная сериализация/десериализация...
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[10]: константа и не константа одновременно(почти)
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.05.15 17:06
Оценка:
Здравствуйте, Кодт, Вы писали:

что-то я тут у себя намудрил %)
все, на сегодня хватит %)

завтра снова подниму этот вопрос, но уже с более детальной постановкой задачи.

пока что, всем спасибо!
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.