$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Arkadiy Vertleyb (vertleyb_at_[hidden])
Date: 2005-01-12 10:29:23
David Abrahams wrote:
> * The way that Boost.MPL uses partial specialization on template
> template parameters to peel apart lambda expressions and turn them into
> metafunction classes.
I thought I understand how it's done, but now that I am trying to apply this
to my own problem, it seems that default template parameters may be a
showstopper in applying this technique, at least in some compilers. For
example if I have:
template<class T> struct do_something;
template<template<class> class T, class P0>
struct do_something<T<P0> >
{};
template<template<class, class> class T, class P0, class P1>
struct do_something<T<P0, P1> >
{};
GCC 3.4.2 can't figure out which specialization to use for, e.g.,
std::vector. At the same time VC71 is fine with this, and chooses the one
with 2 parameteres.
Unfortunately I am unable to find my way around the MPL source to figure out
what's really done...
Can you clarify this?
Thanks in advance,
Arkadiy