Go to the source code of this file.
Classes | |
class | EpFunc0< T > |
class | EpFunc1< T, A > |
class | EpFunc2< T, A1, A2 > |
class | EpFunc3< T, A1, A2, A3 > |
class | EpFunc4< T, A1, A2, A3, A4 > |
class | EpFunc5< T, A1, A2, A3, A4, A5 > |
class | EpFunc6< T, A1, A2, A3, A4, A5, A6 > |
class | GetEpFunc< T, A > |
class | GetEpFunc1< T, L, A > |
Functions | |
template<class T > | |
T * | getEpFuncData (const Eref &e) |
template<> | |
Neutral * | getEpFuncData< Neutral > (const Eref &e) |
T* getEpFuncData | ( | const Eref & | e | ) | [inline] |
Utility function to return a pointer of the desired type from the Eref data. Mainly here because it lets us specialize for Neutrals, below.
References Eref::data().
This is a template specialization for GetEpFunc applied to Neutrals. This is necessary in order to access Element fields of objects that may not have been allocated (such as synapses), even though their Element has been created and needs to be manipulated. Apparently regular functions with same args will be preferred over templates, let's see if this works. Nope, it doesn't. Good try. extern Neutral* getEpFuncData( const Eref& e ); Try this form: it doesn't work either. extern Neutral* dummyNeutral(); template<> Neutral* getEpFuncData< Neutral >( const Eref& e ) { return dummyNeutral(); } Try externing the template itself.