[CDRIVER-366] allow mongo-c-driver to be compiled in C++ mode Created: 14/May/14  Updated: 14/Aug/15  Resolved: 10/Aug/15

Status: Closed
Project: C Driver
Component/s: None
Affects Version/s: None
Fix Version/s: 1.2-beta0

Type: Improvement Priority: Major - P3
Reporter: Christian Hergert Assignee: Hannes Magnusson
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by CDRIVER-780 Test compiling in C++ mode in Evergreen Closed
is depended on by CDRIVER-386 Support recovery from Out of Memory c... Closed
Related
related to CDRIVER-795 allow libbson to be compiled with c++... Closed
related to CDRIVER-796 Fix c++ compiler warnings Closed

 Description   

The C driver does not currently support MSVC when in C++ mode. Some testing needs to be performed to support this. Early tests indicate that ssize_t is not defined when in C++ mode.

The driver code also uses some variable names that are reserved keywords in C++, like "delete", which makes the HHVM driver tricky to compile. (In any compiler, not just MSVC.)



 Comments   
Comment by Githook User [ 14/Aug/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-366 generate C++-compatible future_new test func
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/4cb0283604e5dec28f3abda0ebec0a4d5aed2e51

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'ajdavis', u'name': u'A. Jesse Jiryu Davis', u'email': u'jesse@mongodb.com'}

Message: CDRIVER-366 compile errors on win64 and unix in C mode
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/d36d0bd9fe26a3e227a377c3f24093a53a0f61eb

Comment by Hannes Magnusson [ 10/Aug/15 ]

All tests pass!

There are plenty of warnings left though

  • -Wsign-compare
  • -Waddress (unspecified behaviour)
  • -Wwrite-strings
  • Couple of -Wpointer-arith
  • And couple of -Wnarrowing
Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: Merge branch 'CDRIVER-366-cpp' into 1.2.0-dev

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: Merge branch 'CDRIVER-366-cpp' into 1.2.0-dev

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: Merge branch 'CDRIVER-366-cpp' into 1.2.0-dev

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: Merge branch 'CDRIVER-366-cpp' into 1.2.0-dev

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: Merge branch 'CDRIVER-366-cpp' into 1.2.0-dev

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: Merge branch 'CDRIVER-366-cpp' into 1.2.0-dev

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: Merge branch 'CDRIVER-366-cpp' into 1.2.0-dev

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: Merge branch 'CDRIVER-366-cpp' into 1.2.0-dev

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: Merge branch 'CDRIVER-366-cpp' into 1.2.0-dev

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: Merge branch 'CDRIVER-366-cpp' into 1.2.0-dev

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: CDRIVER-366: Update tests to compile using C++ compiler

Conflicts:
tests/test-mongoc-client.c
tests/test-mongoc-cluster.c
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/493018d026a4aaa3720f524a337d0a96b0f9a9f5

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: CDRIVER-366: Update examples to compile using C++ compiler
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/bc569bc25985ef7910d5f5c3cdda2c4bf98df531

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: CDRIVER-366: Fix enum related casting
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/0aa9addfd7fb572b93e0723d6c32370721a18d05

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: CDRIVER-366: Cast to correct type
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/666f3963c0a79001dbfd31230c5d5616a7ea1b71

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: CDRIVER-366: Cast void to the actual types on assignments
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/068e0adb9b34c5dda54508aa63c08fc97a317b14

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: CDRIVER-366: `not` is a reserved keyword in C++
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/b1e9fad11c07896b3d0394c753760e245a67a6f0

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: CDRIVER-366: `delete` is a reserved keyword in C++
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/542950a5610a416e4e326a1128c3aae16d4bcf2c

Comment by Githook User [ 10/Aug/15 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: CDRIVER-366: Cast allocations to correct types
Branch: 1.2.0-dev
https://github.com/mongodb/mongo-c-driver/commit/f5a24015c10e1ded226f5076d2fa04f4f69d2927

Generated at Wed Feb 07 21:09:16 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.