<div dir="ltr"><div>clang-format keeps the blocks independent, yes. We usually divide in three (or more) blocks: internal headers, third party, std. But it is a matter of taste, of course.<br></div><div>This is the example of a file that uses gdal:</div><div><br></div><div>#pragma once<br><br>#include "CommandOptions.h"<br><br>#include <gdal_priv.h><br>#include <gdal_utils.h><br>#include <ogr_feature.h><br>#include <ogr_spatialref.h><br>#include <ogrsf_frmts.h><br><br>#include <memory><br>#include <stdexcept></div><div><br></div><div>Some includes may have special conditions. Then just use blocks to keep things in order. Also aesthetic order.<br></div><div>Or use  // clang-format off/on to not order something that is very special.</div><div><br></div><div>Anyhow, all this is a mater of taste. But I am really happy when the file is automagically nicely formatted just when I save it.<br></div><div><br></div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">.___ ._ ..._ .. . ._.  .___ .. __ . _. . __..  ... .... ._ .__<br>Entre dos pensamientos racionales <br>hay infinitos pensamientos irracionales.<br><br></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 24 Nov 2022 at 20:34, Andrew C Aitchison <<a href="mailto:andrew@aitchison.me.uk">andrew@aitchison.me.uk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, 24 Nov 2022, Javier Jimenez Shaw wrote:<br>
<br>
> In my opinion if the order of the includes affects the output there is<br>
> something wrong in the code. I hope md5 is not recommending the order.<br>
<br>
It turns out that although 'man md5' says:<br>
      #include <sys/types.h><br>
      #include <md5.h><br>
<br>
the header file /usr/include/md5.h includes <sys/types.h> very early,<br>
so there is no actual problem, at least on this platform - Ubuntu <br>
22.10/kinetic.<br>
<br>
> In case you insist on keeping the order defined by the user<br>
>  ... you can just add a newline to separate the includes in blocks.<br>
> Clang-format keeps the contiguous blocks independent.<br>
<br>
There are times when setting environment variables changes the<br>
effects of a header, so it is a relief to hear that clang-format<br>
wont reorder includes around that.<br>
<br>
I find it interesting to note that, by default, flake8 wants python code<br>
to put 'Stdlib' and 'Third Party' imports to be in separate groups,<br>
whilst clang-format wants to sort<br>
   #include <><br>
and<br>
   #include ""<br>
into one alphabetical list.<br>
<br>
-- <br>
Andrew C. Aitchison                      Kendal, UK<br>
                    <a href="mailto:andrew@aitchison.me.uk" target="_blank">andrew@aitchison.me.uk</a><br>
_______________________________________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/gdal-dev" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a><br>
</blockquote></div>