Re: Header multiple inclusion error

Andrey Utkin <[email protected]>
Newsgroups gmane.comp.video.videolan.libdvbpsi.devel
Message-ID <CANZNk83KQKBu=tOYdFzBGNiYM5FJ-nU-GbcO1iRC+0BL1_yFBg@mail.gmail.com>
2013/5/14 Jean-Paul Saman <[email protected]>:
> Andrey,
>
> On Sat, May 11, 2013 at 10:54 PM, Andrey Utkin
> <[email protected]> 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
_______________________________________________
libdvbpsi-devel mailing list
[email protected]
http://mailman.videolan.org/listinfo/libdvbpsi-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.