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
Discontinue support for VS2013 #4031
Comments
An important note is that most modern C++ libraries require VS2015. |
While I don't want to cling to VS2013 at any cost, I think it's reasonable not to be over-zealous with the new C++11 / C++14 / ... features. The more abstract ones we use, the less compatibility we have with as many systems as possible, the less programmers are familiar with the features and thus the lesser the possible workforce on Cuberite. Also note that some of these features are not properly implemented even in VS2017. |
As for the NBT tag implementation, I think we agreed on storing it in json directly. |
I'm not trying to say that cuberite needs to be rewritten to use these features, just that they are missing. The more advanced features might only be used by a library writer but library compatibility shouldn't be overlooked.
Odd, the linked MSDN article says magic statics work in VS2015. I was just going by that.
I think minimising shared (mutable) data should be a goal for any multithreaded program and
|
The magic statics are implemented in VS2015, but they are broken in subtle ways that interfere with what we do at work. They might work sufficiently for Cuberite, I don't know. |
What say you now? It's 2020 baby! We should be on VS2017 at the earliest! |
I'm not using VS2013 anymore; searching for VS2013 gives only 3 results in this repo, all of them in documentation, rather than code. Appveyor CI uses VS2015 (because their VS2017 images are much slower than VS2015 images). So I'd say it's safe to switch to VS2015. If you can make Appveyor build faster with VS2017, we could even switch there. |
Proposal
Cuberite should discontinue support for Visual Studio 2013 and require at least Visual Studio 2015.
Motivation
In #3856 @madmaxoft says:
But VS2013 lacks many C++11 features:
noexcept
constexpr
static
initialisatione.g.
Copy()
members could move when called on an r-value.NORETURN
->[[noreturn]]
thread_local
: See FastRandom.cpp for workarounds needed today= default
for move construction and move-assignmentstd::chrono::milliseconds{100}
could become100_ms
char{n}_t
inline namespace
alignof
andalignas
sizeof
std::quick_exit
And that's not mentioning the compiler bugs that make some supported C++11 features hard to use.
The text was updated successfully, but these errors were encountered: