Proposal: upgrade to C++11

Hi.
First of all, some info for those who are not familiar with C++. C++ is defined by ISO standard ISO/IEC 14882. Revisions of the standard are marked by the year they are published. So far, there has been 3 revisions: ISO/IEC 14882:1998, ISO/IEC 14882:2003 and ISO/IEC 14882:2011. Informally they are called C++98, C++03 and C++11. Currently, fourth revision is in being worked on having the status of Committee Draft, expected to become C++14.
Now, I've looked at the source code of Red Eclipse and was a bit shocked. It looks like it was developed in pre-C++98 era. It doesn't look like C++ to me, rather some weird dialect of C. So I'm proposing to make the code up with times or at least allow C++11 in the new contributions.
Why? Here are some notable features of C++11:
The industry is rapidly moving towards C++11:
The compiler support:
Lastly, I really want to contribute code to Red Eclipse, but I've spent years learning C++11, all my code is written in C++11 and it would be very uncomfortable to code anything without C++11.
I've asked for this in IRC and got a very strong opposition from graphitemaster, through he is not part of development team and seemed to be the only one opposing. When I've asked him about coding guidelines, I got this. It bans half of the features of even C++98 and I'm not going to contribute under these guidelines. If all else fails, I'm going to create a network-compatible fork on which I'll be testing my ideas.
If, however, this proposal will be accepted, expect (another) generous donation from me.
First of all, some info for those who are not familiar with C++. C++ is defined by ISO standard ISO/IEC 14882. Revisions of the standard are marked by the year they are published. So far, there has been 3 revisions: ISO/IEC 14882:1998, ISO/IEC 14882:2003 and ISO/IEC 14882:2011. Informally they are called C++98, C++03 and C++11. Currently, fourth revision is in being worked on having the status of Committee Draft, expected to become C++14.
Now, I've looked at the source code of Red Eclipse and was a bit shocked. It looks like it was developed in pre-C++98 era. It doesn't look like C++ to me, rather some weird dialect of C. So I'm proposing to make the code up with times or at least allow C++11 in the new contributions.
Why? Here are some notable features of C++11:
- Move semantics - allows you to avoid unnecessary copies and make old code faster without change to it.
- Smart pointers - forget about manually managing memory and worrying about memory leaks. You also get exception safety.
- Standard multithreading - again, forget about OS-specific code to handle concurrency. You now have a standard way to express multithreaded code.
- Explicit Unicode support - you no longer have to live in implementation defined execution character set but instead can be sure that your code is in fact Unicode.
- Lambda expressions - you can now express algorithms as they are meant to be.
- Much more.
The industry is rapidly moving towards C++11:
- The C++ Programming Language, 4th edition - the book by Bjarne Stroustrup, the creator of C++, uses C++11 freely.
- Guru of The Week - the legendary series by Herb Sutter, the chairman of standardization committee, are being updated to C++11/14.
- Scott Meyers is working on a new C++11/14 book.
- Many real world projects are already using C++11, just watch some videos from C++Now or other C++ conferences.
The compiler support:
- GCC 4.8.1 has complete support in the compiler. libstdc++ is still lacking some components.
- Clang 3.3 with libc++ has complete support in both compiler and standard library.
- Visual Studio 2013 Preview supports roughly 60% of the features. (But who cares about Visual Studio, right?)
Lastly, I really want to contribute code to Red Eclipse, but I've spent years learning C++11, all my code is written in C++11 and it would be very uncomfortable to code anything without C++11.
I've asked for this in IRC and got a very strong opposition from graphitemaster, through he is not part of development team and seemed to be the only one opposing. When I've asked him about coding guidelines, I got this. It bans half of the features of even C++98 and I'm not going to contribute under these guidelines. If all else fails, I'm going to create a network-compatible fork on which I'll be testing my ideas.
If, however, this proposal will be accepted, expect (another) generous donation from me.