[odb-users] Strange crash with composite primary key.

Davide Anastasia Davide.Anastasia at qualitycapital.com
Mon Apr 2 12:48:49 EDT 2012


I am trying to obtain a composite primary key using this snippet:


#pragma db object id()

class ClipSize



    // forward declaration

    class ClipKey;



    ClipSize(const std::string& instrumentName,

             const std::string& broker,

             int clipSize):

        m_id(instrumentName, broker),


    { }




    int clipSize() const


        return m_clipSize;



    const std::string& instrumentName() const


        return m_id.m_instrumentName;



    const std::string& broker() const


        return m_id.m_broker;




#pragma db value

    struct ClipKey



        ClipKey(const std::string& instrumentName,

                const std::string& broker):





        std::string m_instrumentName;

        std::string m_broker;




        friend class odb::access;





    friend class odb::access;


#pragma db id

    ClipKey m_id;


#pragma db not_null

    int m_clipSize;




Unfortunately, when this piece of code goes into the ODB compiler, I get
this error:


[ 18%] Building ODB for clipsize.h

terminate called after throwing an instance of

  what():  N4cutl8compiler7context8no_entryE

*** WARNING *** there are active plugins, do not report this as a bug
unless you can reproduce it without enabling any plugins.

Event                            | Plugins

PLUGIN_START_UNIT                | odb

PLUGIN_PRAGMAS                   | odb

PLUGIN_OVERRIDE_GATE             | odb

In file included from <standard-odb-epilogue>:8:0:

/opt/odb-1.8.0/include/odb/tr1/pointer-traits.hxx:95:1: internal
compiler error: Aborted

Please submit a full bug report,

with preprocessed source if appropriate.

See <http://gcc.gnu.org/bugs.html> for instructions.


Any idea of how I can solve this problem?




Davide Anastasia
Analyst, Research & Development

Quality Capital Management Ltd.
QCM House * Horizon Business Village
No. 1 Brooklands Road
Weybridge * Surrey KT13 0TJ
United Kingdom

Tel: +44 (0) 1932 334 400
Fax: +44 (0) 1932 334 415
Email: Davide.Anastasia at QualityCapital.com
<mailto:Davide.Anastasia at QualityCapital.com> 

www.qualitycapital.com <http://www.qualitycapital.com/> 


This email and any attachments are confidential and intended solely for
the use of the individual(s) to whom it is addressed. 

Any views or opinions presented are solely those of the author and do
not necessarily represent those of Quality Capital Management Ltd. If
you are not the intended recipient, be advised that you have received
this email in error and that any use, dissemination, printing,
forwarding or copying of this email is strictly prohibited. Please
contact the sender if you have received this email in error. You should
also be aware that emails are susceptible to interference and you should
not assume that the contents of this email originated from the sender
above or that they have been accurately reproduced in their original
form. Quality Capital Management Ltd is authorised and regulated by the
Financial Services Authority in the UK and is a member of the National
Futures Association in the US. 



More information about the odb-users mailing list