
Giovanni Bajo wrote:
Arkadiy Vertleyb wrote:
One more addition to the typeof library is a macro, that, unlike BOOST_TYPEOF(), which removes top-level consts and references, attempts to be closer to the decltype, by preserving lvalue-ness of its argument:
BOOST_TYPEOF_PRESERVE_LVALUE(expr)
I do admit that the name is quite clumzy :(
BOOST_DECLTYPE?
Well, unfortunately, it's not exactly decltype :( In particular: int i; const int ci = 0; decltype BOOST_TYPEOF_PRESERVE_LVALUE -------- ---------------------------- i int int& ci const int const int& etc. It is calculated by binding a T& to the expression. If it can't be bound the type is the same as one returned by BOOST_TYPEOF. If it can, it's either reference or const reference, depending on the constness of T. Any suggestions how to make it closer to the real decltype? Arkadiy