--
You received this message because you are subscribed to the Google Groups "Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email to capnproto+unsubscribe@googlegroups.com.
Visit this group at https://groups.google.com/group/capnproto.
protected: ::capnp::MallocMessageBuilder mBuilder;
Then I Try to get random access to the fields (I need it for my custom QAbstractItemModel).
In order that I use following code:
QModelIndex hCapnpModel::index(int row, int column, const QModelIndex & parent) const { if((column < 0) || (column >= 30)) return QModelIndex(); capnp::SegmentArrayMessageReader lReader(mBuilder.getSegmentsForOutput()); //capnp::SegmentArrayMessageReader lReader(((::capnp::MessageBuilder&)mBuilder).getSegmentsForOutput()); DokmsList::Reader lRoot = lReader.getRoot<DokmsList>(); ::capnp::List< ::Dokms::Dokm>::Reader lList = lRoot.getDokmsList(); if((row < 0) || (row >= lList.size())) return QModelIndex(); return createIndex(row, column); } In this function I need just number of rows, but in different function (data()) I access
to the rows. So I really need some solution of the problem.
Problem occurs in line:
capnp::SegmentArrayMessageReader lReader(mBuilder.getSegmentsForOutput());
I got following error from VC++:
..\hqpanelCapnp\hcapnpmodel.cpp(141): error C2662: 'kj::ArrayPtr<const kj::ArrayPtr<const capnp::word>> capnp::MessageBuilder::getSegmentsForOutput(void)': cannot convert 'this' pointer from 'const capnp::MallocMessageBuilder' to 'capnp::MessageBuilder &'
..\hqpanelCapnp\hcapnpmodel.cpp(141): note: Conversion loses qualifiers
..\hqpanelCapnp\hcapnpmodel.cpp(141): error C2512: 'capnp::SegmentArrayMessageReader::SegmentArrayMessageReader': no appropriate default constructor available
I think that (for unknown reason) VC++ thinks that mBuilder is const object so it is
different from capnp::MessageBuilder.Now I am wonder how to fix it?
best regards
Jacek
--