diff --git a/include/dynamic-graph/signal-ptr.h b/include/dynamic-graph/signal-ptr.h index f048f8e8ec03ebedd404ae2f7071d222a6275998..4c6909c65d84c38db93c45a190ff51fe268812a0 100644 --- a/include/dynamic-graph/signal-ptr.h +++ b/include/dynamic-graph/signal-ptr.h @@ -107,6 +107,7 @@ namespace dynamicgraph { setConstantDefault( accessCopy () ); } inline void unsetConstantDefault (){ modeNoThrow = false; } + virtual void checkCompatibility(); public: /* --- INHERITANCE --- */ diff --git a/include/dynamic-graph/signal-ptr.t.cpp b/include/dynamic-graph/signal-ptr.t.cpp index 1d32bfa17781bd778e35aa9f3c12533f774203f2..82b03bd414f6169687605a5faab0e763983d46bd 100644 --- a/include/dynamic-graph/signal-ptr.t.cpp +++ b/include/dynamic-graph/signal-ptr.t.cpp @@ -135,6 +135,17 @@ namespace dynamicgraph dgTDEBUGOUT(5); } + template< class T,class Time > + void SignalPtr<T,Time>:: + checkCompatibility () + { + if( isPluged()&&(!autoref ()) ) + { getPtr()->checkCompatibility(); } + else if( isAbstractPluged()&&(!autoref ()) ) + { abstractTransmitter->checkCompatibility(); } + else Signal<T,Time>::checkCompatibility(); + } + template< class T,class Time > bool SignalPtr<T,Time>:: needUpdate( const Time& t ) const