diff options
Diffstat (limited to 'build-aux/snippet/c++defs.h')
| -rw-r--r-- | build-aux/snippet/c++defs.h | 316 | 
1 files changed, 0 insertions, 316 deletions
| diff --git a/build-aux/snippet/c++defs.h b/build-aux/snippet/c++defs.h deleted file mode 100644 index 2b819da5..00000000 --- a/build-aux/snippet/c++defs.h +++ /dev/null @@ -1,316 +0,0 @@ -/* C++ compatible function declaration macros. -   Copyright (C) 2010-2016 Free Software Foundation, Inc. - -   This program is free software: you can redistribute it and/or modify it -   under the terms of the GNU General Public License as published -   by the Free Software Foundation; either version 3 of the License, or -   (at your option) any later version. - -   This program is distributed in the hope that it will be useful, -   but WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -   General Public License for more details. - -   You should have received a copy of the GNU General Public License -   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace.  */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - -   * For providing a substitute for a function that is missing on some -     platforms, but is declared and works fine on the platforms on which -     it exists: - -       #if @GNULIB_FOO@ -       # if !@HAVE_FOO@ -       _GL_FUNCDECL_SYS (foo, ...); -       # endif -       _GL_CXXALIAS_SYS (foo, ...); -       _GL_CXXALIASWARN (foo); -       #elif defined GNULIB_POSIXCHECK -       ... -       #endif - -   * For providing a replacement for a function that exists on all platforms, -     but is broken/insufficient and needs to be replaced on some platforms: - -       #if @GNULIB_FOO@ -       # if @REPLACE_FOO@ -       #  if !(defined __cplusplus && defined GNULIB_NAMESPACE) -       #   undef foo -       #   define foo rpl_foo -       #  endif -       _GL_FUNCDECL_RPL (foo, ...); -       _GL_CXXALIAS_RPL (foo, ...); -       # else -       _GL_CXXALIAS_SYS (foo, ...); -       # endif -       _GL_CXXALIASWARN (foo); -       #elif defined GNULIB_POSIXCHECK -       ... -       #endif - -   * For providing a replacement for a function that exists on some platforms -     but is broken/insufficient and needs to be replaced on some of them and -     is additionally either missing or undeclared on some other platforms: - -       #if @GNULIB_FOO@ -       # if @REPLACE_FOO@ -       #  if !(defined __cplusplus && defined GNULIB_NAMESPACE) -       #   undef foo -       #   define foo rpl_foo -       #  endif -       _GL_FUNCDECL_RPL (foo, ...); -       _GL_CXXALIAS_RPL (foo, ...); -       # else -       #  if !@HAVE_FOO@   or   if !@HAVE_DECL_FOO@ -       _GL_FUNCDECL_SYS (foo, ...); -       #  endif -       _GL_CXXALIAS_SYS (foo, ...); -       # endif -       _GL_CXXALIASWARN (foo); -       #elif defined GNULIB_POSIXCHECK -       ... -       #endif -*/ - -/* _GL_EXTERN_C declaration; -   performs the declaration with C linkage.  */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); -   declares a replacement function, named rpl_func, with the given prototype, -   consisting of return type, parameters, and attributes. -   Example: -     _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) -                                  _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ -  _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ -  _GL_EXTERN_C rettype rpl_func parameters_and_attributes - -/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); -   declares the system function, named func, with the given prototype, -   consisting of return type, parameters, and attributes. -   Example: -     _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) -                                  _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ -  _GL_EXTERN_C rettype func parameters_and_attributes - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); -   declares a C++ alias called GNULIB_NAMESPACE::func -   that redirects to rpl_func, if GNULIB_NAMESPACE is defined. -   Example: -     _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - -   Wrapping rpl_func in an object with an inline conversion operator -   avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is -   actually used in the program.  */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ -  _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ -    namespace GNULIB_NAMESPACE                                \ -    {                                                         \ -      static const struct _gl_ ## func ## _wrapper            \ -      {                                                       \ -        typedef rettype (*type) parameters;                   \ -                                                              \ -        inline operator type () const                         \ -        {                                                     \ -          return ::rpl_func;                                  \ -        }                                                     \ -      } func = {};                                            \ -    }                                                         \ -    _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ -    _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); -   is like  _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); -   except that the C function rpl_func may have a slightly different -   declaration.  A cast is used to silence the "invalid conversion" error -   that would otherwise occur.  */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ -    namespace GNULIB_NAMESPACE                                     \ -    {                                                              \ -      static const struct _gl_ ## func ## _wrapper                 \ -      {                                                            \ -        typedef rettype (*type) parameters;                        \ -                                                                   \ -        inline operator type () const                              \ -        {                                                          \ -          return reinterpret_cast<type>(::rpl_func);               \ -        }                                                          \ -      } func = {};                                                 \ -    }                                                              \ -    _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ -    _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); -   declares a C++ alias called GNULIB_NAMESPACE::func -   that redirects to the system provided function func, if GNULIB_NAMESPACE -   is defined. -   Example: -     _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - -   Wrapping func in an object with an inline conversion operator -   avoids a reference to func unless GNULIB_NAMESPACE::func is -   actually used in the program.  */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters)            \ -    namespace GNULIB_NAMESPACE                                \ -    {                                                         \ -      static const struct _gl_ ## func ## _wrapper            \ -      {                                                       \ -        typedef rettype (*type) parameters;                   \ -                                                              \ -        inline operator type () const                         \ -        {                                                     \ -          return ::func;                                      \ -        }                                                     \ -      } func = {};                                            \ -    }                                                         \ -    _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ -    _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); -   is like  _GL_CXXALIAS_SYS (func, rettype, parameters); -   except that the C function func may have a slightly different declaration. -   A cast is used to silence the "invalid conversion" error that would -   otherwise occur.  */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ -    namespace GNULIB_NAMESPACE                          \ -    {                                                   \ -      static const struct _gl_ ## func ## _wrapper      \ -      {                                                 \ -        typedef rettype (*type) parameters;             \ -                                                        \ -        inline operator type () const                   \ -        {                                               \ -          return reinterpret_cast<type>(::func);        \ -        }                                               \ -      } func = {};                                      \ -    }                                                   \ -    _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ -    _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); -   is like  _GL_CXXALIAS_SYS (func, rettype, parameters); -   except that the C function is picked among a set of overloaded functions, -   namely the one with rettype2 and parameters2.  Two consecutive casts -   are used to silence the "cannot find a match" and "invalid conversion" -   errors that would otherwise occur.  */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -  /* The outer cast must be a reinterpret_cast. -     The inner cast: When the function is defined as a set of overloaded -     functions, it works as a static_cast<>, choosing the designated variant. -     When the function is defined as a single variant, it works as a -     reinterpret_cast<>. The parenthesized cast syntax works both ways.  */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ -    namespace GNULIB_NAMESPACE                                                \ -    {                                                                         \ -      static const struct _gl_ ## func ## _wrapper                            \ -      {                                                                       \ -        typedef rettype (*type) parameters;                                   \ -                                                                              \ -        inline operator type () const                                         \ -        {                                                                     \ -          return reinterpret_cast<type>((rettype2 (*) parameters2)(::func));  \ -        }                                                                     \ -      } func = {};                                                            \ -    }                                                                         \ -    _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ -    _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); -   causes a warning to be emitted when ::func is used but not when -   GNULIB_NAMESPACE::func is used.  func must be defined without overloaded -   variants.  */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ -   _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ -   _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>, -   we enable the warning only when not optimizing.  */ -# if !__OPTIMIZE__ -#  define _GL_CXXALIASWARN_2(func,namespace) \ -    _GL_WARN_ON_USE (func, \ -                     "The symbol ::" #func " refers to the system function. " \ -                     "Use " #namespace "::" #func " instead.") -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -#  define _GL_CXXALIASWARN_2(func,namespace) \ -     extern __typeof__ (func) func -# else -#  define _GL_CXXALIASWARN_2(func,namespace) \ -     _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ -    _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); -   causes a warning to be emitted when the given overloaded variant of ::func -   is used but not when GNULIB_NAMESPACE::func is used.  */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ -   _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ -                        GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ -   _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>, -   we enable the warning only when not optimizing.  */ -# if !__OPTIMIZE__ -#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ -    _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \ -                         "The symbol ::" #func " refers to the system function. " \ -                         "Use " #namespace "::" #func " instead.") -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ -     extern __typeof__ (func) func -# else -#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ -     _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ -    _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ | 
