[libdvbpsi-devel] Header multiple inclusion error

Andrey Utkin andrey.krieger.utkin at gmail.com
Tue May 14 11:29:05 CEST 2013


2013/5/14 Jean-Paul Saman <jpsaman at videolan.org>:
> Andrey,
>
> On Sat, May 11, 2013 at 10:54 PM, Andrey Utkin
> <andrey.krieger.utkin at gmail.com> wrote:
>>
>> I consider forcing compilation fail in case of multiple inclusion not
>> correct.
>> You can see in other projects include guards without "else" block,
>> which result in silently compiling and working correctly.
>> To further justify my position, i'll give an example.
>> We have two classes - A and B, both of which utilize some dvbpsi
>> objects, let's say dvbpsi_t, in their data members or function
>> signatures. Thus they both have to include dvbpsi.h in their .h files.
>> Then we have class C, which includes A and B as data members, so it
>> has to include A.h and B.h in its .h. Voila, multiple inclusion, and
>> libdvbpsi forces compilation fail.
>
>
> You should not include the dvbpsi.h header files inside the .h file for this
> situation. Include it only in the
> .c files is the right solutions in your example.

Could you please explain what is the problem/risk of applying the
change i proposed and using libdvbpsi the way i described? Currently I
see none.
And with workaround you gave, i see the problem of having type
dvbpsi_t undefined in headers. As i explained, i need this type as
classes datamembers.

--
Andrey Utkin


More information about the libdvbpsi-devel mailing list