<div dir="ltr">Andrey,<br><div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, May 11, 2013 at 10:54 PM, Andrey Utkin <span dir="ltr"><<a href="mailto:andrey.krieger.utkin@gmail.com" target="_blank">andrey.krieger.utkin@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I consider forcing compilation fail in case of multiple inclusion not<br>
correct.<br>
You can see in other projects include guards without "else" block,<br>
which result in silently compiling and working correctly.<br>
To further justify my position, i'll give an example.<br>
We have two classes - A and B, both of which utilize some dvbpsi<br>
objects, let's say dvbpsi_t, in their data members or function<br>
signatures. Thus they both have to include dvbpsi.h in their .h files.<br>
Then we have class C, which includes A and B as data members, so it<br>
has to include A.h and B.h in its .h. Voila, multiple inclusion, and<br>
libdvbpsi forces compilation fail.<br></blockquote><div><br></div><div>You should not include the dvbpsi.h header files inside the .h file for this situation. Include it only in the<br></div><div>.c files is the right solutions in your example.<br>
</div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Will a patch eliminating #error directive be accepted?<br></blockquote><div><br></div><div>NO. <br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
--<br>
Andrey Utkin<br>
_______________________________________________<br>
libdvbpsi-devel mailing list<br>
<a href="mailto:libdvbpsi-devel@videolan.org">libdvbpsi-devel@videolan.org</a><br>
<a href="http://mailman.videolan.org/listinfo/libdvbpsi-devel" target="_blank">http://mailman.videolan.org/listinfo/libdvbpsi-devel</a><br>
</blockquote></div><br></div><div class="gmail_extra">Kind regards,<br><br>Jean-Paul Saman.<br></div></div></div>