Hi,
I've got some code which needs to call a template function on different
objects (potentially in a for loop). I'm currently doing this using an
array of function ptrs but like the idea of an array of types.
template<class T>
bool func( std::string& id )
{
return T::dothing( id );
}
int main()
{
const int countOfTypes = 3;
boost::function< bool (std::string& )> funcs[countOfTypes] =
{ boost::bind( func<Obj1>, _1
),
boost::bind( func<Obj2>, _1
),
boost::bind( func<Obj3>, _1
) };
for( int i = 0; i < countOfTypes; ++i )
{
funcs[i]( "testid" );
//would prefer
//func( "testid" );
}
}
I believe this should be possible using the pre-processor or meta
programming parts of boost but have no experience of either and was
hoping for some pointers. Is it possible and is it, IYO, better than the
function pointer method I'm currently using?
Thanks in advance,
Patrick
******************************************************************************
"This message and any attachments are solely for the intended recipient and may contain confidential and privileged information. If you are not the intended recipient, any disclosure, copying, use, or distribution of the information included in this message and any attachments is prohibited. If you have received this communication in error, please notify us by reply e-mail and immediately and permanently delete this message and any attachments. Thank you."
Interactive Transaction Solutions Ltd (2473364 England)
Registered Office:
Systems House,
Station Approach
Emsworth PO10 7PW
**********************************************************************
Ce message �lectronique contient des informations confidentielles � l'usage unique des destinataires indiqu�s, personnes physiques ou morales. Si vous n'�tes pas le destinataire voulu, toute divulgation, copie, ou diffusion ou toute autre utilisation de ces informations, est interdite. Si vous avez re�u ce message �lectronique par erreur, nous vous remercions d'en avertir son exp�diteur imm�diatement par email et de d�truire ce message ainsi que les �l�ments attach�s.
Interactive transaction Solutions SAS- France (RCS Pontoise : 489 397 877)
Si�ge social :
Parc Saint Christophe,
10, Avenue de l�Entreprise
95865 Cergy-Pontoise Cedex
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________