Boost logo

Boost Users :

Subject: [Boost-users] Question about enable_if / disable_if
From: Zachary Turner (divisortheory_at_[hidden])
Date: 2009-05-23 01:19:42


Suppose I have a template function

template<typename T> void f(const std::string&, T);

which I want there to be a couple of different variants of.

Version 1 - Enabled if and only if boost::is_same<T, bool>
Version 2 - Enabled if and only if boost::is_same<T, foo> (foo is a class)
Version 3 - Enabled if and only if boost::is_enum<T>
Version 4 - Otherwise

Is there an easy way to express this? It seems I run into a bunch of
overload ambiguity problems. I'm sure I can get around this by adding to
every version the negation of all the other conditions, but this seems
unnecessarily complicated.



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