
Gennaro Prota <gennaro_prota@yahoo.com> writes:
* Any reason why you used mpl::identity<empty> instead of mpl::identity<>?
a. I didn't know identity had a default argument b. I'm not sure identity<> is supposed to be equivalent to identity<empty>
does the latter break on some known compiler? I'm asking because it could be the reverse and that using the default (i.e. boost::mpl::na) is the preferred/most reliable way.
My guess is that you just wanted to have a clearer diagnostic message, but I wanted to ask.
It doesn't help with the diagnostic. Either the nested thing fails to have a ::not_an_array member and you get an error, or it has the member and you don't. And, note, I didn't use ::type because that confuses the compiler with boost::type<...> and the resulting error message is less clear than it would be otherwise. Enclosed is one easy simplification step. -- Dave Abrahams Boost Consulting www.boost-consulting.com