I need a metafunction that returns true iif a type has a constructor with 2 arguments of a given type. Does mpl have it? If not, is it possible to implement?
template <class C, class T1, class T2>
struct is_constructible_from;
struct foo { foo(int, int); };
struct bar { bar(int*, int); };
struct baz {};
int main() {
assert(is_constructible_from<foo, int, int>::value);
assert(is_constructible_from<foo, int, double>::value);
assert(!is_constructible_from<bar, int, int>::value);
assert(!is_constructible_from<baz, int, int>::value);
};
Roman Perepelitsa.