[odb-users] mapping complex, templatized value types

Christian Sell christian at gsvitec.com
Sat Sep 19 13:03:40 EDT 2015


never mind - I had the value_traits wrongly implemented. Template stuff can get
quite confusing at times..
 
So the real problem lay with version 2.3 I presume and was fixed by the upgrade
 
thanks

> Christian Sell <christian at gsvitec.com> hat am 19. September 2015 um 18:39
> geschrieben:
>
>
> Hello Boris,
>
> I have been able to work around the max_align error by adding a #include
> <cstddef> at the top of the header file containing the mapped classes. This
> seems to be an issue with gcc versions.
>
> I then tried the stuff you gave, and it worked. I have looked into the issues
> with my classes, and it seems to me that the problem lies with the code
> generated by odb, which is not compilable for my classes (the set_value method
> is generated with 4 instead of 3 parameters). I have everything packaged in a
> small sample app, which I could mail to you.
>
> regards,
> Christian
>
>
> > Boris Kolpackov <boris at codesynthesis.com> hat am 19. September 2015 um 15:55
> > geschrieben:
> >
> >
> > Hi Christian,
> >
> > Christian Sell <christian at gsvitec.com> writes:
> >
> > > template instances do not work, neither directly nor through
> > > alias or typedef
> >
> > Strange, this should work and appear to work for me:
> >
> > $ cat test.hxx
> >
> > #include <memory>
> > #include <utility>
> >
> > using int_pair = std::pair<int, int>;
> > #pragma db value(int_pair) type("TEXT")
> >
> > using shared_short_pair = std::shared_ptr<std::pair<short, short>>;
> > #pragma db value(shared_short_pair) type("TEXT")
> >
> > #pragma db object
> > struct object
> > {
> > #pragma db id
> > int id;
> >
> > int_pair ip;
> > std::pair<int, int> ip1;
> >
> > std::shared_ptr<int_pair> sip; // Ok, shared_ptr is a wrapper (Section 7.3).
> >
> > shared_short_pair ssp;
> > std::shared_ptr<std::pair<short, short>> ssp1;
> > };
> >
> > $ odb -d sqlite -s --std c++11 test.hxx
> >
> > Can you try to adjust this example to reproduce your problem?
> >
> > Boris
> Christian Sell
>
> GS Vitec GmbH
> Im Ziegelhaus 6-8
> D-63571 Gelnhausen
>
> mail: christian at gsvitec.com
> mobil: +49 (0) 173 5384289
>
> Tel: +49 (0) 6051 601.26-90
> Fax: +49 (0) 6051 601.26-91
>
Christian Sell

GS Vitec GmbH
Im Ziegelhaus 6-8
D-63571 Gelnhausen

mail: christian at gsvitec.com
mobil: +49 (0) 173 5384289

Tel: +49 (0) 6051 601.26-90
Fax: +49 (0) 6051 601.26-91


More information about the odb-users mailing list