[Ffmpeg-devel] [PATCH] Add allformats.h include file to move *_init() functions and other
Steve Lhomme
steve.lhomme
Sat Jul 1 09:02:15 CEST 2006
Rich Felker wrote:
> On Fri, Jun 30, 2006 at 09:40:25AM +0200, Steve Lhomme wrote:
>> Rich Felker wrote:
>>> On Thu, Jun 29, 2006 at 10:37:28AM -0700, Mike Melanson wrote:
>>>> Steve Lhomme wrote:
>>>>> Is there a C compiler that fails on extern "C" ? At least among the
>>>>> one(s) supported by FFMPEG.
>>>> It's a moot issue since the extern is surrounded by "#ifdef __cplusplus".
>>> My point is that C++ code does not belong in a C project, even under
>>> #ifdef!!! If a C++ project is doing interlanguage linking to C code,
>>> then it should put the C headers inside its own 'extern "C"' block to
>>> make this clear.
>> I agree. Except that libavcodec/libavformat are libraries. And the
>> library user (ie a programmer) shouldn't have to wonder if the C calling
>> convention or the C++ one has to be applied. Unless he has to check the
>> original source to see what is the original programming language.
>
> Nonsense. There's no way you can use a library without knowing its
> language.
Precisely to tell the library user what calling convention has to be
used. Imagine a library that has both C and C++ code (a C++ API with
some C callbacks for example). Is it up to the library user to know what
is the format of the C parts ? No. It's up to the library to tell what
is what.
BTW, I don't have Linux loaded, but in MinGW I can see 280 standard
headers that have the '#ifdef _cplusplus extern "C"' thingy...
> Anyway the language for any legitimate library is C.
Shouldn't there be just one language and one OS anyway ?
Steve
--
robUx4 on blog <http://robux4.blogspot.com/>
More information about the ffmpeg-devel
mailing list