$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Dietmar Kuehl (dietmar_kuehl_at_[hidden])
Date: 2001-01-25 15:42:27
Hi,
Matt Austern wrote:
> Yes, a paper on this subject would be very useful. I don't know of any
> promising solutions other than function template partial specialization
> and overloads with namespace std.
It ain't pretty but if we really need function template partial
specialization
we can emulate it:
template <typename T>
struct swap_t {
static void do(T& t1, T& t2) {
T tmp = t1;
t1 = t2;
t2 = tmp;
}
};
template <typename T>
void swap(T& t1, T& t2) { swap_t<T>::do(t1, t2); }
Now 'swap_t::do()' is a partial specializable function. It isn't pretty
and
would need a lot of change in the library if this is what is supposed to
be
done but it is doable, without a library change and without allowing users
to add overloads into namespace 'std'.