Is it allowed to use a lambda function as the default value of a template argument? The code fragment in question would be:
template <typename K, typename E, typename C = [](const K& l, const K& r) { return (l < r); }> class FooBar { typedef C compare_fn; }; If it's not, why so, and what could be the most passable alternative, aside from pointers to functions? TIA.