Interrupt / systemshock

Shockolate - A minimalist and cross platform System Shock source port.
GNU General Public License v3.0
802 stars 62 forks source link

Clarify language and targeted standard in README #315

Open vittorioromeo opened 4 years ago

vittorioromeo commented 4 years ago

I've noticed that some recent commits have introduced nullptr in the codebase and added a C++11 requirement to CMakeLists.txt (https://github.com/Interrupt/systemshock/commit/e07f23447f04c5726a07eab895e0d7f010aae71c). I think this is great and would welcome even more modern C++ standards, but regardless it needs to be documented in the README as contributors might not be aware that the project is not a C project anymore.

Interrupt commented 4 years ago

This brings up a good point - do we really want to add support for modern C++ over just straight C? Initially I was pushing back against this change as just being spurious, but if it does open the door to new user facing features like proper UTF-8 support then it's probably a good idea.

HunterZ commented 4 years ago

I follow people on Twitter who are using the latest GCC to write C++ on the Nintendo 64, so I can't think of an honest argument against it - especially if it leads to cleaner code, useful features, and/or more community engagement.

vittorioromeo commented 4 years ago

I would welcome Modern C++ as well, and would be more eager to contribute to the project if I could use C++11/14/17 features. Obviously code reviews should be mandated to avoid feature creep and overengineering, but most C++ features can be used to simplify the code and reduce boilerplate, if not abused.

winterheart commented 4 years ago

So, I see here more and more advantages of using C++ over C in project - migrating code to object oriented approach surprisingly will make code more robust and clean. C++17 has very good features such std::filesystem, which can be very useful for us.