我完全知道返回值std::type_info::name()是实现定义的.
从C++标准(ISO/IEC 14882:2003§18.5.1.7):
返回:实现定义的NTBS.
我的问题是:为什么?如果标准规定返回值应该是什么,那么这个成员函数不会更有用吗?
基本上,如果实现决定他们不支持RTTI,则可以return "";。如果该标准强迫它返回某些内容,则它们可能会失去在不存在或希望禁用RTTI资源的环境中拥有兼容编译器的任何能力(例如,微芯片)。
而且不要忘了我们不想在任何编译器上强制使用ABI /名称处理方案。
这遵循C ++的哲学:“您不用为不需要的东西付钱”。
| 归档时间: |
|
| 查看次数: |
447 次 |
| 最近记录: |