From obermann.lukas at gmail.com Thu Mar 1 05:50:44 2018 From: obermann.lukas at gmail.com (Lukas Obermann) Date: Thu Mar 1 05:53:17 2018 Subject: [odb-users] libodb-mysql with MariaDB Message-ID: Hello, I know that MariaDB is supported, but how do I actually compile the runtime with it? I search around google and the mailing list but I do not see anything. It always tries to link with libmysqlclient_r. Thanks for any hint! All the best, Lukas From timo at rothenpieler.org Thu Mar 1 06:11:21 2018 From: timo at rothenpieler.org (Timo Rothenpieler) Date: Thu Mar 1 06:13:53 2018 Subject: [odb-users] libodb-mysql with MariaDB In-Reply-To: References: Message-ID: <4e7ac20f-7c15-1a03-3da4-064569060a18@rothenpieler.org> On 01.03.2018 11:50, Lukas Obermann wrote: > Hello, > > I know that MariaDB is supported, but how do I actually compile the runtime with it? > I search around google and the mailing list but I do not see anything. It always tries to link with libmysqlclient_r. Which comes with mariadb. -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3994 bytes Desc: S/MIME Cryptographic Signature Url : https://codesynthesis.com/pipermail/odb-users/attachments/20180301/8e1499ba/smime.bin From timo at rothenpieler.org Thu Mar 1 09:45:09 2018 From: timo at rothenpieler.org (Timo Rothenpieler) Date: Thu Mar 1 09:47:32 2018 Subject: [odb-users] libodb-mysql with MariaDB In-Reply-To: <2E6469BB-2502-4F08-A568-BFEA86645960@gmail.com> References: <4e7ac20f-7c15-1a03-3da4-064569060a18@rothenpieler.org> <2E6469BB-2502-4F08-A568-BFEA86645960@gmail.com> Message-ID: <3ecc202c-778d-4bc4-eb64-8f4d983d4bb4@rothenpieler.org> On 01.03.2018 13:12, Lukas Obermann wrote: > Am 01.03.2018 um 12:11 schrieb Timo Rothenpieler >: >> >> On 01.03.2018 11:50, Lukas Obermann wrote: >>> Hello, >>> >>> I know that MariaDB is supported, but how do I actually compile the >>> runtime with it? >>> I search around google and the mailing list but I do not see >>> anything. It always tries to link with libmysqlclient_r. >> >> Which comes with mariadb. >> > > Not sure on this. Using the latest C++ connector 3.0.3 it only > produces?libmariadbclient.a for me. > The connector is built like this > https://github.com/xbmc/xbmc/blob/master/tools/depends/target/mariadb/Makefile $ equery belongs /usr/lib64/libmysqlclient_r.so * Searching for /usr/lib64/libmysqlclient_r.so ... dev-db/mariadb-10.1.29 (/usr/lib64/libmysqlclient.so.18.0.0) dev-db/mariadb-10.1.29 (/usr/lib64/libmysqlclient_r.so -> libmysqlclient.so) It definitely belong to mariadb. The library name was never changed. -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3994 bytes Desc: S/MIME Cryptographic Signature Url : https://codesynthesis.com/pipermail/odb-users/attachments/20180301/93f755a3/smime.bin From boris at codesynthesis.com Thu Mar 1 09:55:31 2018 From: boris at codesynthesis.com (Boris Kolpackov) Date: Thu Mar 1 09:57:56 2018 Subject: [odb-users] libodb-mysql with MariaDB In-Reply-To: References: Message-ID: Lukas Obermann writes: > I know that MariaDB is supported, but how do I actually compile the > runtime with it? I search around google and the mailing list but I > do not see anything. It always tries to link with libmysqlclient_r. 2.4.0 was released when MariaDB was pretending to be libmysqlclient_r. Lately it's been moving away from this practice though most distributions still provide the compatibility symlinks (sometimes as a separate package). If you feel adventurous, you can try the latest snapshot with build2[1]. It is capable of building against both runtimes natively (and the repository even contains runtimes themselves[2] so you can actually build things in a sane manner if you are, say, on Windows). If you want to give it a try, these are the rough steps: 1. Get the latest staged build2 toolchain[3] (introduction[4]). 2. Fetch libodb and libodb-mysql, in libodb-mysql/odb/mysql/buildfile change the 'client_lib' setting (this hack is temporary until we have proper support for configurations). [1] https://stage.build2.org/?q=odb [2] https://stage.build2.org/?q=mysql [3] https://stage.build2.org/0/ [4] https://build2.org/build2-toolchain/doc/build2-toolchain-intro.xhtml Boris From obermann.lukas at gmail.com Thu Mar 1 15:06:17 2018 From: obermann.lukas at gmail.com (Lukas Obermann) Date: Thu Mar 1 15:08:52 2018 Subject: [odb-users] libodb-mysql with MariaDB In-Reply-To: <3ecc202c-778d-4bc4-eb64-8f4d983d4bb4@rothenpieler.org> References: <4e7ac20f-7c15-1a03-3da4-064569060a18@rothenpieler.org> <2E6469BB-2502-4F08-A568-BFEA86645960@gmail.com> <3ecc202c-778d-4bc4-eb64-8f4d983d4bb4@rothenpieler.org> Message-ID: I do not disagree with you. It is just that it is not there in that build environment. Anyway, I created the link myself and the build of the lib went threw. Will see later on if it still works (currently updating everything to match the current master) > Am 01.03.2018 um 15:45 schrieb Timo Rothenpieler : > > On 01.03.2018 13:12, Lukas Obermann wrote: >> Am 01.03.2018 um 12:11 schrieb Timo Rothenpieler >> >>: >>> >>> On 01.03.2018 11:50, Lukas Obermann wrote: >>>> Hello, >>>> >>>> I know that MariaDB is supported, but how do I actually compile the >>>> runtime with it? >>>> I search around google and the mailing list but I do not see >>>> anything. It always tries to link with libmysqlclient_r. >>> >>> Which comes with mariadb. >>> >> >> Not sure on this. Using the latest C++ connector 3.0.3 it only >> produces libmariadbclient.a for me. >> The connector is built like this >> https://github.com/xbmc/xbmc/blob/master/tools/depends/target/mariadb/Makefile > > $ equery belongs /usr/lib64/libmysqlclient_r.so > * Searching for /usr/lib64/libmysqlclient_r.so ... > dev-db/mariadb-10.1.29 (/usr/lib64/libmysqlclient.so.18.0.0) > dev-db/mariadb-10.1.29 (/usr/lib64/libmysqlclient_r.so -> libmysqlclient.so) > > > It definitely belong to mariadb. The library name was never changed. From obermann.lukas at gmail.com Thu Mar 1 15:07:39 2018 From: obermann.lukas at gmail.com (Lukas Obermann) Date: Thu Mar 1 15:10:13 2018 Subject: [odb-users] libodb-mysql with MariaDB In-Reply-To: References: Message-ID: Thanks Boris! I created the symlink and the build went threw. I will definitely give the snapshot a try! Is there already a summary of ?what is new? for the new version? So I know what to look out for. Thanks, Lukas > Am 01.03.2018 um 15:55 schrieb Boris Kolpackov : > > Lukas Obermann writes: > >> I know that MariaDB is supported, but how do I actually compile the >> runtime with it? I search around google and the mailing list but I >> do not see anything. It always tries to link with libmysqlclient_r. > > 2.4.0 was released when MariaDB was pretending to be libmysqlclient_r. > Lately it's been moving away from this practice though most distributions > still provide the compatibility symlinks (sometimes as a separate package). > > If you feel adventurous, you can try the latest snapshot with build2[1]. > It is capable of building against both runtimes natively (and the > repository even contains runtimes themselves[2] so you can actually > build things in a sane manner if you are, say, on Windows). > > If you want to give it a try, these are the rough steps: > > 1. Get the latest staged build2 toolchain[3] (introduction[4]). > > 2. Fetch libodb and libodb-mysql, in libodb-mysql/odb/mysql/buildfile > change the 'client_lib' setting (this hack is temporary until we > have proper support for configurations). > > [1] https://stage.build2.org/?q=odb > [2] https://stage.build2.org/?q=mysql > [3] https://stage.build2.org/0/ > [4] https://build2.org/build2-toolchain/doc/build2-toolchain-intro.xhtml > > Boris From PStath at jmawireless.com Mon Mar 12 11:18:48 2018 From: PStath at jmawireless.com (Paul Stath) Date: Mon Mar 12 11:21:58 2018 Subject: [odb-users] Lazy pointer question Message-ID: Hi Boris, I have a question about using lazy pointers that I'm having trouble with. I have successfully used lazy pointers in a previous project for a different company, but no longer have access to that code, so I'm having to do it again. (frown) I have an object B that has a lazy_weak_pointer to object C. Object B is loaded due to an eager (std::shared_ptr) pointer while object A is loaded. Relationship of objects A and B don't factor into this question, correct? How does one determine if object B is linked to object C without calling the lazy_weak_ptr::load() method? In reading the documentation, section 6.4 describes contains the interface for the generic class lazy_pointer. Right above the loaded() method is a comment containing the following table: NULL loaded() true true NULL pointer to transient object false true valid pointer to persistent object true false unloaded pointer to persistent object false false valid pointer to transient object I also searched the odb-users mailing list archive and discovered the following topic: https://www.codesynthesis.com/pipermail/odb-users/2016-June/003290.html Combining the manual and this mailing list entry, I have the following question: For a lazy_weak_ptr: Does this mean the first column is the same as calling lazy_weak_ptr.expired()? For a lazy_shared_ptr: What does the first column indicate? Is that a simple bool check of the lazy_shared_ptr instance? if (c_ptr && c_ptr.loaded()) { // valid pointer to persistent object } --- Paul Stath Senior Systems Software Engineer JMA Wireless pstath@jmawireless From javier.gutierrez at web.de Mon Mar 12 12:33:40 2018 From: javier.gutierrez at web.de (Javier Gutierrez) Date: Mon Mar 12 12:37:04 2018 Subject: [odb-users] Lazy pointer question In-Reply-To: References: Message-ID: <9d085ba6-84f9-f9b8-c9d2-aa3e31dab47e@web.de> Hi there, I don't have a lot of experience with ODB, but what I understand is that the lazy pointer always contains the ID of the object that is not yet loaded. So if the ID column is called "id" then B->C->id would give the link. Hope it helps, if not hope somebody else answers.. Best regards, Javier -------- Original Message -------- Subject: [odb-users] Lazy pointer question From: Paul Stath To: odb-users@codesynthesis.com Date: 3/12/2018 4:18 PM > Hi Boris, > > I have a question about using lazy pointers that I'm having trouble with. > I have successfully used lazy pointers in a previous project for a different company, but no longer have access to that code, so I'm having to do it again. (frown) > > I have an object B that has a lazy_weak_pointer to object C. > Object B is loaded due to an eager (std::shared_ptr) pointer while object A is loaded. > Relationship of objects A and B don't factor into this question, correct? > > How does one determine if object B is linked to object C without calling the lazy_weak_ptr::load() method? > > In reading the documentation, section 6.4 describes contains the interface for the generic class lazy_pointer. > Right above the loaded() method is a comment containing the following table: > > NULL loaded() > true true NULL pointer to transient object > false true valid pointer to persistent object > true false unloaded pointer to persistent object > false false valid pointer to transient object > > I also searched the odb-users mailing list archive and discovered the following topic: https://www.codesynthesis.com/pipermail/odb-users/2016-June/003290.html > > Combining the manual and this mailing list entry, I have the following question: > > For a lazy_weak_ptr: > Does this mean the first column is the same as calling lazy_weak_ptr.expired()? > For a lazy_shared_ptr: > What does the first column indicate? > Is that a simple bool check of the lazy_shared_ptr instance? > if (c_ptr && c_ptr.loaded()) { // valid pointer to persistent object } > > --- > Paul Stath > Senior Systems Software Engineer > JMA Wireless > pstath@jmawireless From sandhya.seshagiri at tcs.com Tue Mar 13 04:30:12 2018 From: sandhya.seshagiri at tcs.com (Sandhya Seshagiri) Date: Tue Mar 13 04:33:30 2018 Subject: [odb-users] application very slow with ODB and PostgreSQL Message-ID: Dear Boris, I have created an desktop application using ODB and PostgreSQL 9.3. My application is very slow during insert, update and erase. For example it takes nearly 15 seconds to erase and update 100 records. Could you please help give your suggestion why am facing such issues? Thanks & Regards Sandhya Seshagiri Tata Consultancy Services Tata Research Development & Design Centre , 54, Hadapsar Industrial Estate, Hadapsar, Pune - 411 013,Maharashtra India Mailto: sandhya.seshagiri@tcs.com Website: http://www.tcs.com ____________________________________________ Experience certainty. IT Services Business Solutions Consulting ____________________________________________ =====-----=====-----===== Notice: The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or telephone and immediately and permanently delete the message and any attachments. Thank you From javier.gutierrez at web.de Tue Mar 13 05:05:09 2018 From: javier.gutierrez at web.de (Javier Gutierrez) Date: Tue Mar 13 05:08:22 2018 Subject: [odb-users] application very slow with ODB and PostgreSQL In-Reply-To: References: Message-ID: <8e291841-f0e9-4e9e-0a3e-7c48c3bfc258@web.de> Hello there, I am just another user of ODB and not an expert, but maybe you can check when deleting and updating specific rows, that you have the corresponding indexes for accessing those rows, if you run a manual select for the same rows, does it also have delay? Another thing to consider is using prepared queries, they speed up the process by having the queries already compiled instead of compiling them every time, this is explained in the point 4.5 of the manual. Hope it helps, if not the maintainers of the code surely will help you further Best regards, Javier -------- Original Message -------- Subject: [odb-users] application very slow with ODB and PostgreSQL From: Sandhya Seshagiri To: odb-users@codesynthesis.com Date: 3/13/2018 9:30 AM > Dear Boris, > > I have created an desktop application using ODB and PostgreSQL 9.3. My > application is very slow during insert, update and erase. For example it > takes nearly 15 seconds to erase and update 100 records. Could you please > help give your suggestion why am facing such issues? > > Thanks & Regards > Sandhya Seshagiri > Tata Consultancy Services > Tata Research Development & Design Centre , > 54, Hadapsar Industrial Estate, > Hadapsar, > Pune - 411 013,Maharashtra > India > Mailto: sandhya.seshagiri@tcs.com > Website: http://www.tcs.com > ____________________________________________ > Experience certainty. IT Services > Business Solutions > Consulting > ____________________________________________ > =====-----=====-----===== > Notice: The information contained in this e-mail > message and/or attachments to it may contain > confidential or privileged information. If you are > not the intended recipient, any dissemination, use, > review, distribution, printing or copying of the > information contained in this e-mail message > and/or attachments to it are strictly prohibited. If > you have received this communication in error, > please notify us by reply e-mail or telephone and > immediately and permanently delete the message > and any attachments. Thank you > > From boris at codesynthesis.com Tue Mar 13 09:22:24 2018 From: boris at codesynthesis.com (Boris Kolpackov) Date: Tue Mar 13 09:25:28 2018 Subject: [odb-users] Lazy pointer question In-Reply-To: References: Message-ID: Paul Stath writes: > How does one determine if object B is linked to object C without calling > the lazy_weak_ptr::load() method? If you have a lazy_weak_ptr that you have loaded from the database (i.e., it is either NULL [in the database sense] or contains a valid object id), then to check whether it is NULL you lock it to obtain lazy_shared_ptr and then check if it is NULL: lazy_shared_ptr p = w.lock (); if (p != nullptr) { } Boris From boris at codesynthesis.com Tue Mar 13 09:26:48 2018 From: boris at codesynthesis.com (Boris Kolpackov) Date: Tue Mar 13 09:29:52 2018 Subject: [odb-users] application very slow with ODB and PostgreSQL In-Reply-To: <8e291841-f0e9-4e9e-0a3e-7c48c3bfc258@web.de> References: <8e291841-f0e9-4e9e-0a3e-7c48c3bfc258@web.de> Message-ID: It is hard to say anything definitive without more details. But to add to Javier's suggestions (thanks, Javier!), the two common causes of this are: 1. Large database without proper indexes. 2. Accessing database over slow/high-latency connection. Boris From sandhya.seshagiri at tcs.com Wed Mar 14 05:23:17 2018 From: sandhya.seshagiri at tcs.com (Sandhya Seshagiri) Date: Wed Mar 14 05:26:47 2018 Subject: #Personal:Re: [odb-users] application very slow with ODB and PostgreSQL In-Reply-To: References: <8e291841-f0e9-4e9e-0a3e-7c48c3bfc258@web.de> Message-ID: Thanks Boris and Javier for your suggestions. The problem was due to trigger function i have enabled to sync data in another postgres database table. The trigger operation slowed down my insertion in to tables. Without trigger, the performance by ODB to update and erase is very good. Thanks, Sandhya From: Boris Kolpackov To: Sandhya Seshagiri Cc: odb-users@codesynthesis.com Date: 13-03-2018 18:57 Subject: Re: [odb-users] application very slow with ODB and PostgreSQL It is hard to say anything definitive without more details. But to add to Javier's suggestions (thanks, Javier!), the two common causes of this are: 1. Large database without proper indexes. 2. Accessing database over slow/high-latency connection. Boris =====-----=====-----===== Notice: The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or telephone and immediately and permanently delete the message and any attachments. Thank you From kingzilang at 126.com Thu Mar 15 09:56:08 2018 From: kingzilang at 126.com (=?GBK?B?sKKxyA==?=) Date: Thu Mar 15 10:32:57 2018 Subject: [odb-users] Use odb.exe on window problem Message-ID: <3eeb2878.bbff.16229f24f2c.Coremail.kingzilang@126.com> Dear, I'm Chinese and my English is so so, hope you could understand my follow question, thank you. I use odb.exe on window to generate *-odb files use follow command odb -d sqlite --generate-query --generate-schema person.hxx then I get the sql statements in person-odb.cxx. In person-odb.cxx, the create table statement like follow: ("CREATE TABLE \"person\" (\n" " \"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n" " \"first\" TEXT NOT NULL,\n" " \"last\" TEXT NOT NULL,\n" " \"age\" INTEGER NOT NULL)") But I need create table IFNOTEXISTS. Just like "CREATE TABLE IFNOTEXISTS \"person\" .... 1. I could not found something about this settings in odb --help. 2. I could found the create statement in obd/relational/sqlite/schema.cxx like follow struct version_table: relational::version_table, context { version_table (base const& x): base (x) {} virtual void create_table () { pre_statement (); os << "CREATE TABLE IF NOT EXISTS " << qt_ << " (" << endl << " " << qn_ << " TEXT NOT NULL PRIMARY KEY," << endl << " " << qv_ << " INTEGER NOT NULL," << endl << " " << qm_ << " INTEGER NOT NULL)" << endl; post_statement (); } It has IF NOT EXISTS, why the generate code without? I use odb-2.4.0-i686-windows and download from https://www.codesynthesis.com/products/odb/download.xhtml. Thank you and wait for your reply. From odb at a-cunningham.com Thu Mar 15 18:51:15 2018 From: odb at a-cunningham.com (Andrew Cunningham) Date: Thu Mar 15 18:54:34 2018 Subject: [odb-users] Suggestion: replace map with unordered_map in session Message-ID: Hi, I am using a custom "session" object which is essentially a copy of the default ODB session. I saw significant performance improvements replacing std::map with std::unordered_map - I have millions of objects in the session cache. My suggestion would be to replace map with unordered_map in the default odb::session as well. I did some tests and can't find a scenario in which std::unordered_map is slower as it automatically rehashes to avoid excessive hash collisions. Andrew From javier.gutierrez at web.de Wed Mar 14 18:36:48 2018 From: javier.gutierrez at web.de (Javier Gutierrez) Date: Fri Mar 16 11:06:29 2018 Subject: [odb-users] Application cannot terminate (hangs) if transaction with make_current = false not committed nor rolled back Message-ID: <4e5ea6d9-bafb-9df5-aaa0-4f05fe89f741@web.de> Hi there, this time a question from my side :) I am having a problem when I create a transaction with the make_current flag = false. When my application needs to terminate (e.g. due to an exception) and the transaction was no finalized (e.g. neither committed nor rolled back), then my application hangs. The hanging is due to a locked condition_variable in the ODB database library. As workaround for now I am recording in a vector all transactions created inside my transaction factory, and in the destructor, finalize all of them which have not yet been finalized. This seems anyhow a bit cumbersome, and worse I have not control on transactions created by the user outside the factory. So my question is if there is a way to finalize all these inactive transactions directly from ODB.. Thanks in advance, Javier From boris at codesynthesis.com Fri Mar 16 11:13:54 2018 From: boris at codesynthesis.com (Boris Kolpackov) Date: Fri Mar 16 11:17:07 2018 Subject: [odb-users] Application cannot terminate (hangs) if transaction with make_current = false not committed nor rolled back In-Reply-To: <4e5ea6d9-bafb-9df5-aaa0-4f05fe89f741@web.de> References: <4e5ea6d9-bafb-9df5-aaa0-4f05fe89f741@web.de> Message-ID: Javier Gutierrez writes: > this time a question from my side :) I am having a problem when I create a > transaction with the make_current flag = false. When my application needs to > terminate (e.g. due to an exception) and the transaction was no finalized > (e.g. neither committed nor rolled back), then my application hangs. The > hanging is due to a locked condition_variable in the ODB database library. I don't believe this has anything to do with make_current but with the fact that you are not destroying the transaction object. Such a transaction is still holding on to a database connection which blocks the connection pool destruction. Generally (and naturally), you should have all the transaction objects destroyed before attempting to destroy the database. Boris From boris at codesynthesis.com Mon Mar 19 09:24:16 2018 From: boris at codesynthesis.com (Boris Kolpackov) Date: Mon Mar 19 09:27:41 2018 Subject: [odb-users] Use odb.exe on window problem In-Reply-To: <3eeb2878.bbff.16229f24f2c.Coremail.kingzilang@126.com> References: <3eeb2878.bbff.16229f24f2c.Coremail.kingzilang@126.com> Message-ID: ?? writes: > But I need create table IFNOTEXISTS. This is an unreliable way to deal with database schemas (what if the table exists but does not match the create statement). For a better way, see Chapter 13, "Database Schema Evolution" in the ODB manual. Boris From kingzilang at 126.com Sun Mar 25 22:04:13 2018 From: kingzilang at 126.com (=?GBK?B?sKKxyA==?=) Date: Mon Mar 26 07:52:40 2018 Subject: [odb-users] Use odb.exe on window problem In-Reply-To: References: <3eeb2878.bbff.16229f24f2c.Coremail.kingzilang@126.com> Message-ID: <7e401949.2960.162600c7aca.Coremail.kingzilang@126.com> Thank you for your help and make me avoid detours. At 2018-03-19 20:24:16, "Boris Kolpackov" wrote: >?? writes: > >> But I need create table IFNOTEXISTS. > >This is an unreliable way to deal with database schemas (what if the table >exists but does not match the create statement). For a better way, see >Chapter 13, "Database Schema Evolution" in the ODB manual. > >Boris From becoggins at hotmail.com Tue Mar 27 09:10:49 2018 From: becoggins at hotmail.com (Brian Coggins) Date: Tue Mar 27 09:14:46 2018 Subject: [odb-users] C++17 and Exception Specifications Message-ID: Hello, I am using ODB 2.4.0 in a project which I would like to switch to C++17. However, the ODB headers use exception specifications, and these are not allowed under C++17. See the following error from clang: > In file included from /Users/brian/Software/libodb-2.4.0/odb/database.hxx:27: > In file included from /Users/brian/Software/libodb-2.4.0/odb/prepared-query.hxx:12: > In file included from /Users/brian/Software/libodb-2.4.0/odb/result.hxx:16: > In file included from /Users/brian/Software/libodb-2.4.0/odb/details/shared-ptr.hxx:11: > /Users/brian/Software/libodb-2.4.0/odb/details/shared-ptr/base.hxx:38:49: error: ISO C++1z does not allow dynamic exception specifications [-Wdynamic-exception-spec] > operator new (std::size_t, odb::details::share) throw (std::bad_alloc); > ^~~~~~~~~~~~~~~~~~~~~~ > /Users/brian/Software/libodb-2.4.0/odb/details/shared-ptr/base.hxx:38:49: note: use 'noexcept(false)' instead > operator new (std::size_t, odb::details::share) throw (std::bad_alloc); > ^~~~~~~~~~~~~~~~~~~~~~ > noexcept(false) I was wondering if there is any plan to update the ODB headers to allow compilation in C++17? Thanks, Brian From boris at codesynthesis.com Tue Mar 27 10:45:11 2018 From: boris at codesynthesis.com (Boris Kolpackov) Date: Tue Mar 27 10:48:59 2018 Subject: [odb-users] C++17 and Exception Specifications In-Reply-To: References: Message-ID: Brian Coggins writes: > I was wondering if there is any plan to update the ODB headers to > allow compilation in C++17? Yes, this has already been done for the upcoming release. If you would like, you can try a pre-release with these changes: https://codesynthesis.com/~boris/tmp/odb/pre-release/b.3/ Boris From becoggins at hotmail.com Tue Mar 27 23:23:33 2018 From: becoggins at hotmail.com (Brian Coggins) Date: Tue Mar 27 23:27:30 2018 Subject: [odb-users] C++17 and Exception Specifications In-Reply-To: References: Message-ID: Boris, I?ll give the beta version a try. Many thanks! Brian > On Mar 27, 2018, at 10:45 AM, Boris Kolpackov wrote: > > Brian Coggins writes: > >> I was wondering if there is any plan to update the ODB headers to >> allow compilation in C++17? > > Yes, this has already been done for the upcoming release. If you would > like, you can try a pre-release with these changes: > > https://codesynthesis.com/~boris/tmp/odb/pre-release/b.3/ > > Boris