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