Re: std::tr1::function and constructors
* Parapura Rajkumar:
hey all
Is this code standard ?
Seems to be.
It seems to be ok VS 2008 but gcc complains
that function needs a valid return type
Basically I am trying to store a constructor as a std::tr1::function
This is in code you haven't shown.
Why do you not show the problem code, but only the apparently non-problematic code?
A constructor does not have a result type, not even 'void'.
What you can do instead is to pass a factory function around.
Probably you don't need to wrap that as a std::tr1::function, but you could.
template<class POLYMORPHIC>
The single letters 'T', 'U' and so on are effectively idiomatic as names of
template type parameters.
Apart from that (and a few other idioms), don't use ALL UPPERCASE names for
anything but macros.
And for macros always use all uppercase names.
struct Factory_traits
{
typedef std::tr1::function<POLYMORPHIC*()> func_type;
};
Post a minimal /complete/ example that exemplifies the error with g++, please.
Cheers & hth.,
- Alf