libzypp  17.5.0
APIConfig.h File Reference

Provides API related macros. More...

#include "zypp/base/Easy.h"
Include dependency graph for APIConfig.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define ZYPP_DECL_EXPORT
 
Generic helper definitions for shared library support. More...
 
#define ZYPP_DECL_IMPORT
 
#define ZYPP_DECL_HIDDEN
 
#define ZYPP_API   ZYPP_DECL_IMPORT
 
#define ZYPP_LOCAL
 
#define ZYPP_DEPRECATED
 The ZYPP_DEPRECATED macro can be used to trigger compile-time warnings with gcc >= 3.2 when deprecated functions are used. More...
 

Detailed Description

Provides API related macros.

Definition in file APIConfig.h.

Macro Definition Documentation

◆ ZYPP_DECL_EXPORT

#define ZYPP_DECL_EXPORT


Generic helper definitions for shared library support.

See also
e.g. http://gcc.gnu.org/wiki/Visibility
extern "C" ZYPP_API void function(int a);
class ZYPP_API SomeClass
{
int c;
ZYPP_LOCAL void privateMethod(); // Only for use within this DSO
public:
Person(int _c) : c(_c) { }
static void foo(int a);
};
};

Definition at line 38 of file APIConfig.h.

◆ ZYPP_DECL_IMPORT

#define ZYPP_DECL_IMPORT

Definition at line 39 of file APIConfig.h.

◆ ZYPP_DECL_HIDDEN

#define ZYPP_DECL_HIDDEN

Definition at line 40 of file APIConfig.h.

◆ ZYPP_API

#define ZYPP_API   ZYPP_DECL_IMPORT

Definition at line 47 of file APIConfig.h.

◆ ZYPP_LOCAL

#define ZYPP_LOCAL

Definition at line 48 of file APIConfig.h.

◆ ZYPP_DEPRECATED

#define ZYPP_DEPRECATED

The ZYPP_DEPRECATED macro can be used to trigger compile-time warnings with gcc >= 3.2 when deprecated functions are used.

For non-inline functions, the macro is used at the very end of the function declaration, right before the semicolon, unless it's pure virtual:

int deprecatedFunc() const ZYPP_DEPRECATED; virtual int deprecatedPureVirtualFunc() const ZYPP_DEPRECATED = 0;

Functions which are implemented inline are handled differently: the ZYPP_DEPRECATED macro is used at the front, right before the return type, but after "static" or "virtual":

ZYPP_DEPRECATED void deprecatedFuncA() { .. } virtual ZYPP_DEPRECATED int deprecatedFuncB() { .. } static ZYPP_DEPRECATED bool deprecatedFuncC() { .. }

You can also mark whole structs or classes as deprecated, by inserting the ZYPP_DEPRECATED macro after the struct/class keyword, but before the name of the struct/class:

class ZYPP_DEPRECATED DeprecatedClass { }; struct ZYPP_DEPRECATED DeprecatedStruct { };

However, deprecating a struct/class doesn't create a warning for gcc versions <= 3.3 (haven't tried 3.4 yet). If you want to deprecate a class, also deprecate all member functions as well (which will cause warnings).

Definition at line 88 of file APIConfig.h.