This may be an artifact of the compiler's error reporting mechanism, but the errors' expansion of the MultiPrecision type I'm using has reference types in it. Types from Boost.MP seem to be a shell class template that wraps an engine and several options. Some of the errors that pop up when using Boost.MP when using Boost.Test with my custom complex-number class: - Boost.MPL calls within Boost.Test complain that it's trying to get a pointer to a reference. - My own code uses arrays everywhere, and I get errors about making arrays to references. I'm not doing anything (too) advanced. Is Boost.MP giving users references-to-types instead of class types when requesting a numeric type? Pointers may be objects in and of themselves, but references aren't; they're just aliases; trying to intentionally use them as first-class objects is arguably broken. Daryle W.