Bug #524

Publish only API objects in the installed header files

Added by Andreas Huggel over 10 years ago. Updated almost 9 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:Andreas Huggel% Done:

100%

Category:design
Target version:0.18

Description

It is a basic rule of library design that classes, functions and variables which are only used internally and are not considered part of the library's API should not be present in the installed header files.

They should be moved to new include files, which are not installed.

Consider introducing a new namespace too, e.g., a nested namespace Exiv2::Internal for these objects. Exiv2 cpp files can always start with a 'using namespace Exiv2::Internal' for convenience.


Related issues

Related to Exiv2 - Feature #523: C++ symbol visibility support for gcc builds Closed
Related to Exiv2 - Feature #510: Use pimpl idiom where applicable New

History

#1 Updated by Gilles Caulier over 9 years ago

Andreas,

We ned to use d private internal class to improve binary compatibilty everywhere. I use this way everywehre in my code (digikam, kipi-plugins and all shared libs relevant)

Other advantage is to have a code which compile faster duing a less of header included everywhere.

If you need help with this task, let's me hear.

Gilles Caulier

#2 Updated by Andreas Huggel almost 9 years ago

  • % Done changed from 0 to 100

#3 Updated by Andreas Huggel almost 9 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF

Redmine Appliance - Powered by TurnKey Linux