-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Let's switch to C++11 #317
Comments
👍 +1, I'm not the one who may decide this though. |
I thought we already had... Yeah, I'm for this, no point in staying with old standards, technology marches on and all that. Unless there's something I don't know that would cause problems, in which case someone's bound to point those out soon... |
On 2/15/14, 1:35 PM, Vesa V wrote:
Well, there is the fact that all of C++11 is still not widely Is there a feature that would be greatly simplified if implemented in C++11? |
Though Qt does much of our work, I guess that some useful features are useful
On the other side, you say you have no motivation, but what could the
[1] http://en.wikipedia.org/wiki/C%2B%2B11#Object_construction_improvement |
Yeah, C++11 is fine and the only possible show stopper is compatibility. It's not about adding the stdc++ flag or not because omitting it will still result in failing compilation with older versions of GCC. Nevertheless I think it would be no harm to start using widely supported C++11 features. Currently mainly GCC is used for building LMMS so we don't need to take care of VSC++ or similiar. There's a nice list of supported C++11 features in individual GCC releases at http://gcc.gnu.org/projects/cxx0x.html For the time being, we should support GCC downto at least 4.6. This means, don't make use of C++11 features supported by GCC 4.7 or 4.8 only. We can advance to 4.7 maybe within later this year. Requiring a newer version at this time should be a no-go in order to support Debian stable (4.7), Ubuntu LTS (GCC 4.6) etc. |
@Vea: it's not about getting rid of old technologies but supporting Linux distributions whose last stable version has been released just 1 or 2 years ago. |
Ah yes, I forgot that. Is there anyone who has, randomly, gcc 4.6, to test The next days, I'll prepare a small patch to make our code C++11 ready. This |
Yes there is: Travis CI. ;) 2014-02-15 23:39 GMT+01:00 JohannesLorenz [email protected]:
|
This would be an on-going change. Do we really want to set milestones for this? Let's just say that we accept the subset of C++11 as mentioned by @tobydox. This case can be closed. And now people are free to write code with these features or to port existing code. |
No, this is not only an on-going change. Setting |
Am Donnerstag, 20. Februar 2014, 06:11:21 schrieb Lukas W:
Agreed to reopen. The switching is a short task which will/can be "completed". As said, I'll make this patch in the next days. However, there should be no |
I do not recall - who has updated the ZynAddSubFX code in our LMMS? It is not [1] |
@JohannesLorenz |
I wonder why the zynaddsubfx update is still not done. Shouldn't it be made Btw: Is it possible to use a git submodule instead of copying the code? That |
On 03/17/2014 09:54 PM, JohannesLorenz wrote:
It's already done, but it's in a separate branch and it won't be merged The new zyn version does use a submodule, btw. |
Exactly :-) |
I really need C++11 now. Reason: We will have to knob ctors, and one should The problem: C++11 code needs the new ZASF branch. Is it good if I fork my C++11 branch from your "stable-0.4-zynaddsubfx-update" And if I can fork from ZASF: How to do it? "git checkout stable-0.4- Thanks on advance. |
Could you explain this a bit more in detail? Why do you need the new ZASF update for using C++11? |
The current one is not compilable. You get ugly compiler errors. They were Btw: I did not get my own message, but your response to it. Is this typically |
On 03/22/2014 01:49 PM, JohannesLorenz wrote:
Then you could just wait until 1.0.0 is released (which was planned this |
Couldn't third party code such as ZASF and various libraries still be compiled with the older standard? I don't know about CMake, but this is easy to do in waf. |
It can and should be compiled independently from LMMS itself. Changing such things as the used C standard should not change the building process of third party dependencies. |
@toby: Can you please merge in the ZASF branch soon? Maybe this weekend? The
Many thanks on advance. |
Done, please checkout the master branch and don't forget to run "git submodule init" the first time and "git submodule update" later from time to time. |
I guess since Ubuntu's next LTS comes in 3 weeks, most ppl would like to wait |
Why not push this to the master branch.
|
Incompatibility. Ah wait. I think Toby said it must be supported by gcc 4.6. |
Remember 1.0 branch is for bug fixes. Master branch is for new features
|
Am Samstag, 29. März 2014, 08:39:50 schrieb eagles051387:
Oh, thanks. Please revoke the request, I'll make another one. |
Am Samstag, 29. März 2014, 08:39:50 schrieb eagles051387:
Oh no, Travis CI even failed. The c++11 flag has a different name (c++1y) in |
You can close it yourself. There is an option under the comment box to close the issue/pull request. |
On 03/29/2014 05:59 PM, JohannesLorenz wrote:
I have both 4.6 and 4.8. But it's not only the developers we have to |
It's coming anyways. The new ZynAddSubFX branch has a lot of C++11 code. And it brings a lot of advantages, even outside template programming. Just thinking about enum classes, default values for class members, auto keyword and the new for loop syntax.
I tried to compile LMMS with -std=c++11, and I got a few errors indeed. But I guess I could fix them all very easily.
I'd go ahead and prepare it all, if you allow. What do you think?
The text was updated successfully, but these errors were encountered: