Hi,
I'm having trouble with the following design with vs 7.1 and wondering
if anyone could offer a workaround.
Particularly it seems that the ".template operator" syntax isn't liked.
(This works on gcc 4.0.3). Removing the 'template' keyword from the bind
arguments gives an error novel.
Any ideas would be warmly welcomed!
s
#include
#include
#include <iostream>
class tmpl_operator
{
public:
template <typename T> void operator&( const T& rhs ) const
{
// do stuff
std::cout << rhs;
}
};
template
class command
{
public:
command( T& obj, bound& instance ) : _instance(instance)
{
// works with gcc (4.0.3) but not cl (7.1):
apply = boost::bind(&bound::template operator&<T>,
instance,
obj);
// doesn't compile in vs:
//_instance.template operator&<T>(obj);
// this compiles in vs though:
// _instance.operator&<T>(obj);
}
void execute() { apply(); }
private:
bound _instance;
boost::function apply;
};
int main()
{
double dbl = 2.71;
tmpl_operator instance;
command test(dbl,instance);
test.execute();
}
*******************************
This e-mail contains information for the intended recipient only. It may contain proprietary material or confidential information. If you are not the intended recipient you are not authorised to distribute, copy or use this e-mail or any attachment to it. Murex cannot guarantee that it is virus free and accepts no responsibility for any loss or damage arising from its use. If you have received this e-mail in error please notify immediately the sender and delete the original email received, any attachments and all copies from your system.