Boost logo

Boost Users :

Subject: [Boost-users] [concept check][mpl] (Conditional) Concept checking for functions
From: Jesse Perla (jesseperla_at_[hidden])
Date: 2009-03-29 16:32:28


One rough idea I had was that since I will always have boost::function
declarations as the default type, I could try to see if the type F is
compatible with the boost::function type? Could this be done in a simple
metafunction similar to the following:

template<class BoostF, class F>
struct CheckFunctionCompatible
{
    static void Check()
    {
         F f;
         BoostF fboost = f; //If this fails, then I am basically failing
    }
};

But then if I instantiate, won't it also try to instantiate the constructor?

template<class F>
class
{
        typedef CheckFunctionCompatible<boost::function<double (double)>, F>
test_F_compatibility;
};

Of course, this wouldn't work for detecting the signature of the function,
but that is a 2nd order feature for me. Of course, this also assumes that F
can be constructed with no parameters, but this also might be reasonable for
me if there is no better solution.

-Jesse



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net