<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 14, 2013 at 1:46 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">2013/5/14 Jean-Paul Saman <<a href="mailto:jpsaman@videolan.org">jpsaman@videolan.org</a>>:<br>
<div class="im">> In case of multiple inclusion of a header file is usually a sign that the<br>
> design is flawed.<br>
> Your design probably exposes more internal details than it needs too.<br>
><br>
> It could easily lead to circular dependencies. It is cleaner to have header<br>
> files as much<br>
> as possible declared inside the *.c file.<br>
><br>
> This is my 2cts on the subject.<br>
><br>
>> And with workaround you gave, i see the problem of having type<br>
>> dvbpsi_t undefined in headers. As i explained, i need this type as<br>
>> classes datamembers.<br>
<br>
</div>It feels like you ignore what i say.<br></blockquote><div><br></div><div>I think we can safely agree on the fact that we disagree. It is your project, <br>so structure it like you want, but I won't include a patch-set that removes<br>
</div><div>the #error from libdvbpsi header files.<br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Your point is very valid for C, but I have C++ project, not C. It is<br>
usual to declare fully the object structure in .h file, and private<br>
data members, too, you know. Well, as far as i know, there's no way at<br>
all to _not_ declare private datamembers in .h and declare them later<br>
in .cpp of that same class.<br>
And the classes i address to are not of public API, they're just<br>
classes inside my project, i don't want to use PIMPL pattern or<br>
something else, splitting classes into two _only_ to workaround the<br>
compilation fail forced by library.<br>
<br>
I'd say it again - i am not against include guard as such, i am for<br>
removal of compilation fail forcing. It is not used anywhere else!<br>
Look at include guarding in other projects, they don't have it. Look<br>
at wiki, there's no even mention of such behaviour, everywhere it is<br>
just<br>
#ifndef HEADER_H_<br>
#define HEADER_H_<br>
// declarations<br>
#endif<br>
<br>
--<br>
Andrey Utkin<br>
</blockquote></div><br></div><div class="gmail_extra">Kind regards,<br><br>Jean-Paul Saman.<br></div></div>