why the RTTI cannot tell the const qualifier of variables?
This is the expected result. The C++ standard explicitly
says:
The top-level cv-qualifiers of the lvalue expression or the type-id that is the
operand of typeid are always
ignored.
[Example:
class D { ... };
D d1;
const D d2;
typeid(d1) == typeid(d2); // yields true
typeid(D) == typeid(const D); // yields true
typeid(D) == typeid(d2); // yields true
typeid(D) == typeid(const D&); // yields true
—end example]There are practical reasons for this. top-level constness is a
rather fleeting thing.
------------
Further read:
Appearing and Disappearing consts in C++
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.