1

C++ RTTI および type_info クラスを見るとraw_name()、クラスのデマングル名を返すために使用されるメソッドの記述を見つけることがあります。g++ での実装は見つかりませんが、メソッドのみname()です。それが Visual Studio/MS のみに固有の実装であるかどうか、および C++ 標準の一部であるかどうかを知っていますか?

4

2 に答える 2

3

簡単なGoogleはraw_name()、Microsoftによってのみ文書化されていることを示します。これはC++の一部ではありません。

于 2013-02-11T12:05:18.103 に答える
3

これは実装固有type_infoあり、標準で次のように定義されています。

C ++ 03標準:18.7.1クラスtype_info:

namespace std {
class type_info {
public:
virtual ~type_info();
bool operator==(const type_info& rhs) const noexcept;
bool operator!=(const type_info& rhs) const noexcept;
bool before(const type_info& rhs) const noexcept;
size_t hash_code() const noexcept;
const char* name() const noexcept;
type_info(const type_info& rhs) = delete; // cannot be copied
type_info& operator=(const type_info& rhs) = delete; // cannot be copied
};
}

ご覧のとおり、標準で定義されたクラスメンバーでraw_dataはありません。

于 2013-02-11T12:05:34.147 に答える