"Edward Diener"
I am trying to understand how the MPL library works. I first read "The Boost C++ Metaprogramming Library" by Aleksey Gurtovoy and David Abrahams. When I get to Basic Usage I see this:
template< typename Condition , typename T1 , typename T2 > struct if_ { typedef /*unspecified*/ type; };
I am really having trouble understanding the next to last line. How can "typedef type;" be a valid C++ construct and,
It's not.
if it is, what does it mean ?
There's an unspecified type-expression which goes where the /*unspecified*/ comment is.
I always though that a typedef must specify an actual type but I don't see any in the expression above.
The point is that we're not showing it to you ;-) If you are coming to the ACCU conference in Oxford, I'll be giving a talk which describes how the MPL works in detail. -- Dave Abrahams Boost Consulting www.boost-consulting.com