<div dir="ltr"><div>Mateusz,</div><div><br></div><div>Thanks for calling out the confusion! Are meaning to say that <a href="https://docs.google.com/document/d/1Y9flzxj3Uz1vTEPCBmlswgi470m8i-oepGutVkbowfc/pub" target="_blank">my proposal</a> is vague? I rephrased the status to be more clear that the C++11/14 focus is the GDAL community (AKA the majority of this thread), not the proposal. Hopefully it is clearer now. Please read the proposal as just looking at the possibilities. Please try not to care about C++ language version when trying to do a first round review of ideas.</div><div><br></div><div class="gmail_extra"><div class="gmail_quote">On Fri, May 6, 2016 at 2:47 PM, Mateusz Loskot <span dir="ltr"><<a href="mailto:mateusz@loskot.net" target="_blank">mateusz@loskot.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span>On 6 May 2016 at 21:55, Kurt Schwehr <<a href="mailto:schwehr@gmail.com" target="_blank">schwehr@gmail.com</a>> wrote:<br>
> My belief is that for this particular proposal, we should not have the<br>
> C++11/14 discussion unless the best overall solution requires a newer<br>
> version of C++. The solution I propose to be the best works in C++03 and<br>
> newer.<br>
<br>
</span>Simply, the initial proposal was quite confusing.<br>
<br>
The 'title' said indicated it was "mostly focused on C++11/14 & C99/11",<br>
while the content mentioned mostly the std::vector as malloc'ed arrays<br>
replacement.<br></blockquote><div><br></div><div>That was just a status I added after the fact. I worded it poorly.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<br>
Considering current codebase, GDAL is written in C and compiled in C++.<br>
The only major C++ feature used in GDAL is classes and polymorphism.<br>
<br></blockquote><div><br></div><div>I agree that GDAL has a strong feel of C compiled with C++ right now.</div><div><br></div><div>I disagree about C++ feature use. I see algorithm, iostream, map, list, sstream, a few exceptions, std::string (mostly in the form of CPLString), vector, localization of variables, some templates, #define to static consts, etc. </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
I'm not sure if the facts mentioned in the proposal, namely<br>
"Want to focus on maintainability and readability of code",<br>
is meant to be a fact or a goal.<br></blockquote><div><br></div><div>That would be a goal. And readability is going somewhat be subjective.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
If you ask any seasoned C programmer for opinion, I bet she will<br>
consider GDAL codebase as clear and readable.<br>
If you ask a C++ programmer, the answer might be different.<br>
<br>
IMO, I doubt any C++11/14 feature will increase the current code,<br>
unless it is considered to ditch many of CPL features and replace<br>
them with C++ standard features (string bashing operations, string containers,<br>
containers for other types, threading API, etc.).<br>
<br></blockquote><div><br></div><div>"increase the current code" <- Did you mean increase the reliability? Or size? Or complexity?</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
Certainly, any new line to be written may benefit from auto,<br>
constexpr, using, nullptr, range loops - but for a "C with classes"<br>
codebase as GDAL, it would be cosmetic improvement, if any.<br>
<br></blockquote><div><br></div><div>I disagree that C++11/14 changes would be cosmetic. But this is the wrong thread for this part of the discussion.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
Surely, the override and final will help compiler to catch potential bugs.<br>
Also, C++11/14 compilation mode is generally stricter, so it might<br>
help to catch bugs.<br>
<br>
Simply, the whole proposal is becoming vague.<br>
<div><div><br>
Best regards,<br>
--<br>
Mateusz Loskot, <a href="http://mateusz.loskot.net" rel="noreferrer" target="_blank">http://mateusz.loskot.net</a><br>
</div></div></blockquote></div><br><div><br></div>
</div></div>