[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: |
|
| 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, |
| 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, |
| 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. |
| 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, |
| 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, |