clean-up some library and linkage problems

the object VTable is typically emitted when the compiler
encounters the first non-static non-inline function of
the class or a derived class.

Sometimes this happens within the wrong library and so
the compiler needs a nudge to emit those infrastructure functions.
But in most cases this works out of the box and need no further
magic incanctations, which might have a downside.
Especially because also a non-inline dtor does incur a call overhead,
whereas an inline dtor can be trivially elided.
This commit is contained in:
Fischlurch 2015-07-04 21:09:44 +02:00
parent 5b0d58518e
commit 7f51a01631
5 changed files with 2 additions and 7 deletions

View file

@ -48,9 +48,6 @@ namespace lib {
namespace time {
TCode::~TCode() { } // emit VTable here....
namespace format { /* ================= Timecode implementation details ======== */
LUMIERA_ERROR_DEFINE (INVALID_TIMECODE, "timecode format error, illegal value encountered");

View file

@ -52,7 +52,7 @@ namespace time {
{
public:
virtual ~TCode();
virtual ~TCode() { }
operator string() const { return show(); }
string describe() const { return string(tcID()); }

View file

@ -181,8 +181,6 @@ namespace engine{
/* ===== Quality-of-Service ===== */
EngineService::Quality::~Quality() { } // emit vtables here...
enum CalcType {
PLAYBACK,
RENDER,

View file

@ -121,7 +121,7 @@ namespace engine{
class Quality
{
public:
virtual ~Quality(); ///< this is an Interface
virtual ~Quality() { }; ///< this is an Interface
};