[Ffmpeg-devel] Re: #define always_inline (hello?)

David Abrahams dave
Wed Jan 11 21:43:06 CET 2006


David Abrahams <dave at boost-consulting.com> writes:

> FFMPEG's use of 
>
>          #define always_inline
>
> is problematic.  The MacOS headers (and, presumably,
> other legitimate headers) use legal GCC constructs like:
>  
>    static __inline__ __attribute__((always_inline)) 
>    return_type function_name() {  }
>  
> which naturally is disrupted by any attempt to #define
> always_inline.  

Let me just clarify that when I say "is disrupted" I mean that
#defining always_inline causes these headers to generate /syntax
errors/.

Let me also point restate that this is not a MacOS-only problem.


> I propose that FFMPEG use some other symbol for that
> purpose, preferably an ALL_UPPERCASE symbol beginning with FFMPEG_,
> e.g.
>
>
>         FFMPEG_ALWAYS_INLINE
>
> Yes, GCC should have stayed out of our way by using a reserved
> identifier such as __always_inline__, but regardless, #defining
> non-prefixed lowercase macro names in library headers is always
> problematic because they tend to collide with identifiers in user
> code.  ALL_UPPERCASE names are, by convention, reserved for macros.
>
> Am I missing something important here?

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com





More information about the ffmpeg-devel mailing list