[SERVER-10467] Will 2.4.x c++ driver support -std=c++11? Created: 19/Jun/13  Updated: 10/Dec/14  Resolved: 17/Sep/13

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Question Priority: Major - P3
Reporter: Jay West Assignee: Andrew Morrow (Inactive)
Resolution: Won't Fix Votes: 0
Labels: c++11
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Linux Centos 6.3, gcc 2.7.1


Attachments: File patch.boost_1_53     File patch.c++11    
Backwards Compatibility: Fully Compatible
Participants:

 Description   

gcc -std=c+11 currently fails for the c+ driver on release 2.4.4. I see c+11 support being added into 2.5, but the deployment timeframe for 2.5 is too long for us. We would like to start using mongos 2.4.4 for our project in the near future. Are there plans to support -std=c+11 compile support for the 2.4.x release stream?

Thanks.



 Comments   
Comment by Jay West [ 17/Sep/13 ]

That's fine - those who need it 2.4 for C++ can apply the patch directly.

Thanks,
Jay

Comment by Andrew Morrow (Inactive) [ 16/Sep/13 ]

Hi Jay -

I think that we are unlikely to apply these patches, despite the fact that they are small and straightforward, since 2.4 is now quite stable and C++11 support was a non-goal for that release.

However, if you feel strongly that these changes should be made, the best mechanism to get discussion moving in that direction would be to sign the contributors agreement and open a github pull request with these changes (one change per commit is best), and we and the community can discuss there.

Thanks,
Andrew

Comment by Jay West [ 02/Aug/13 ]

The changes really are trivial, and it would be great see it put into an official release.

I've uploaded two patches:

patch.c+11: changes needed to compile with -std=c+11 flag. These changes were taken from the 2.5 stream.
patch.boost_1_53: Changes needed to compile with boost v1.53. The 2.5 stream did not have this change when I checked (a month ago).

Comment by Andrew Morrow (Inactive) [ 02/Aug/13 ]

I'm very happy to hear you were able to get it working.

You are certainly welcome to post a patch here with your 2.4.x edits. I do think it is unlikely that we will apply them to 2.4 for the reasons I mentioned earlier (unless they were truly trivial I suppose), but by posting the patch you will provide a way forward for others who may need to achieve C++11 support in 2.4.

In the meantime, I'll plan to resolve this as won't fix, unless there is anything else you need.

Thanks,
Andrew

Comment by Jay West [ 02/Aug/13 ]

I couldn't find a C++driver category, so I thought CDRIVER was the closest match for the category. Sorry for the misfile.

The only portion that needs to be C+11 compile compatible is the C+ stand alone driver code, which will be linked into our own application code. We don't need the entire client/server build to be converted.

I actually got the 2.4.4 C++ driver to compile and link with our application code using --std=c++11. There were only a few lines in a few files that needed to be changed (macro related). I cherry picked the necessary changes from the 2.5 code stream. I can upload a patch if it would be useful, but the changes are pretty simple.

Comment by Andrew Morrow (Inactive) [ 31/Jul/13 ]

Hi -

I apologize this didn't get noticed sooner. In the future, issues with the C++ driver or core server should get filed under the SERVER project, rather than the CDRIVER project. The latter is only for the plain 'C' driver.

Unfortunately, we do not intend to backport the work done to support C++11 in 2.5 to the 2.4 branch. It is simply too large a set of changes, and 2.4 series point releases are intended for bug fixes, not feature additions.

I'm slightly confused by one aspect of your question though. You mention that you want to use 2.4 for 'mongos', but your question is about the driver. Can you clarify what components you need to be C++11 compatible, and why?

Thanks,
Andrew

Generated at Thu Feb 08 03:23:15 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.