Boost logo

Boost Users :

Subject: Re: [Boost-users] Question about enable_if / disable_if
From: Roman Perepelitsa (roman.perepelitsa_at_[hidden])
Date: 2009-05-23 06:30:36

2009/5/23 Zachary Turner <divisortheory_at_[hidden]>

> 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.

1, 2 and 3 are disjoint, so you can use them as is. For 4 use negation of 1,
2 and 3.

Roman Perepelitsa.

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at