According to the MPL reference, a placeholder expression
X must satisfy (among others) the following
condition:
"All of X's template parameters, including the
default ones, are types."
According to that the following should then compile
without errors:
#include
#include
#include
using namespace boost;
using namespace boost::mpl;
template
struct foo
{
template<typename Q>
struct apply{
typedef Q type;
};
};
typedef apply1,int>::type t1;
BOOST_MPL_ASSERT((is_same));
int main(){}
However, I've tried with GCC 3.4.4 and the static
assertion fails! I'd like to know:
1. Whether I'm right in assuming that the code above
should compile without assertion failures.
2. What the behavior is for other versions of GCC and
compilers: reports most welcome!!
3. Whether this is a known problem specific to GCC
or, more generally, what the status of this issue is.
Thank you,
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo